~unifield-team/unifield-wm/us-826

« back to all changes in this revision

Viewing changes to sale_override/test/sale_test.yml

  • Committer: chloups208
  • Date: 2011-06-30 14:54:26 UTC
  • mto: (307.2.1 unifield-wm)
  • mto: This revision was merged to the branch mainline in revision 311.
  • Revision ID: chloups208@chloups208-laptop-20110630145426-qsj5j0pp3e5b23bc
[UF-53][UF-58][UF-63] initial commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
-
2
 
  In order to test the part of sale order of the order_types module
3
 
  we will create sale orders with different types, priority and category
4
 
  and follow the workflow to see if the behaviour is good.
5
 
-
6
 
  We create a Regular sale order with internal partner
7
 
-
8
 
  !record {model: sale.order, id: sregular1}:
9
 
    name: Regular1
10
 
    company_id: base.main_company
11
 
    picking_policy: direct
12
 
    invoice_quantity: order
13
 
    partner_order_id: address1
14
 
    partner_invoice_id: address1
15
 
    partner_shipping_id: address1
16
 
    partner_id: supplier1
17
 
    pricelist_id: purchase.list0
18
 
    order_type: regular
19
 
-
20
 
  We create line for this regular sale order
21
 
-
22
 
  !record {model: sale.order.line, id: sregular1_l1}:
23
 
    product_uom: product.product_uom_unit
24
 
    product_id: product1
25
 
    order_id: sregular1
26
 
    price_unit: 1.50
27
 
    product_uom_qty: 10
28
 
    name: P1
29
 
-
30
 
  We create a second line for this sale order
31
 
-
32
 
  !record {model: sale.order.line, id: sregular1_l2}:
33
 
    product_uom: product.product_uom_unit
34
 
    product_id: product2
35
 
    order_id: sregular1
36
 
    price_unit: 3
37
 
    product_uom_qty: 30
38
 
    name: P2
39
 
-
40
 
  We confirm this sale order
41
 
-
42
 
  !workflow {model: sale.order, action: order_confirm, ref: sregular1}
43
 
-
44
 
  We check if no invoice has been created
45
 
-
46
 
  !python {model: account.invoice}: |
47
 
    invoice_ids = self.search(cr, uid, [('origin', '=', 'Regular1')])
48
 
    assert not invoice_ids, ('Invoice was generated on a Regular sale order with an internal partner')
49
 
-
50
 
  We check if stock moves was generated with good data
51
 
-
52
 
  !python {model: stock.move}: |
53
 
    move_ids = self.search(cr, uid, [('sale_line_id', 'in', [ref('sregular1_l1'), ref('sregular1_l2')])])
54
 
    assert move_ids, ('No stock moves were generated on a Regular sale order with an internal partner')
55
 
    for move in self.browse(cr, uid, move_ids):
56
 
      assert move.order_priority == 'normal', ('Generated move hasn\'t the good priority')
57
 
      assert move.order_category == 'mixed', ('Generated move hasn\'t the good category')
58
 
      assert move.order_type == 'regular', ('Generated move hasn\'t the good type')
59
 
      reason_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'reason_types_moves', 'reason_type_deliver_partner')[1]
60
 
      assert move.picking_id.reason_type_id.id == reason_id, ('Generated picking hasn\'t the good reason type')
61
 
-
62
 
  We create a Regular sale order with external partner
63
 
-
64
 
  !record {model: sale.order, id: sregular2}:
65
 
    name: Regular2
66
 
    company_id: base.main_company
67
 
    picking_policy: direct
68
 
    invoice_quantity: order
69
 
    partner_order_id: address2
70
 
    partner_invoice_id: address2
71
 
    partner_shipping_id: address2
72
 
    partner_id: supplier2
73
 
    pricelist_id: purchase.list0
74
 
    order_type: regular
75
 
-
76
 
  We create line for this regular sale order
77
 
-
78
 
  !record {model: sale.order.line, id: sregular2_l1}:
79
 
    product_uom: product.product_uom_unit
80
 
    product_id: product1
81
 
    order_id: sregular2
82
 
    price_unit: 1.50
83
 
    product_uom_qty: 10
84
 
    name: P1
85
 
    date_planned: !eval time.strftime('%Y-%m-%d')
86
 
-
87
 
  We create a second line for this sale order
88
 
-
89
 
  !record {model: sale.order.line, id: sregular2_l2}:
90
 
    product_uom: product.product_uom_unit
91
 
    product_id: product2
92
 
    order_id: sregular2
93
 
    price_unit: 3
94
 
    product_uom_qty: 30
95
 
    name: P2
96
 
    date_planned: !eval time.strftime('%Y-%m-%d')
97
 
-
98
 
  We confirm this sale order
99
 
-
100
 
  !workflow {model: sale.order, action: order_confirm, ref: sregular2}
101
 
-
102
 
  We check if no invoice has been created
103
 
-
104
 
  !python {model: account.invoice}: |
105
 
    invoice_ids = self.search(cr, uid, [('origin', '=', 'Regular2')])
106
 
    assert not invoice_ids, ('Invoice was generated on a Regular sale order with an external partner')
107
 
-
108
 
  We check if stock moves was generated with good data
109
 
-
110
 
  !python {model: stock.move}: |
111
 
    move_ids = self.search(cr, uid, [('sale_line_id', 'in', [ref('sregular2_l1'), ref('sregular2_l2')])])
112
 
    assert move_ids, ('No stock moves were generated on a Regular sale order with an external partner')
113
 
    for move in self.browse(cr, uid, move_ids):
114
 
      assert move.order_priority == 'normal', ('Generated move hasn\'t the good priority')
115
 
      assert move.order_category == 'mixed', ('Generated move hasn\'t the good category')
116
 
      assert move.order_type == 'regular', ('Generated move hasn\'t the good type')
117
 
      reason_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'reason_types_moves', 'reason_type_deliver_partner')[1]
118
 
      assert move.picking_id.reason_type_id.id == reason_id, ('Generated picking hasn\'t the good reason type')
119
 
-
120
 
  We create a Donation before expiry
121
 
-
122
 
  !record {model: sale.order, id: sdonation3}:
123
 
    name: Donation3
124
 
    company_id: base.main_company
125
 
    picking_policy: direct
126
 
    order_policy: manual
127
 
    invoice_quantity: order
128
 
    partner_order_id: address1
129
 
    partner_invoice_id: address1
130
 
    partner_shipping_id: address1
131
 
    partner_id: supplier1
132
 
    pricelist_id: purchase.list0
133
 
    order_type: donation_exp
134
 
-
135
 
  We create line for this donation
136
 
-
137
 
  !record {model: sale.order.line, id: sdonation3_l1}:
138
 
    product_uom: product.product_uom_unit
139
 
    product_id: product1
140
 
    order_id: sdonation3
141
 
    price_unit: 1.50
142
 
    product_uom_qty: 10
143
 
    name: P1
144
 
    date_planned: !eval time.strftime('%Y-%m-%d')
145
 
-
146
 
  We create a second line for this sale order
147
 
-
148
 
  !record {model: sale.order.line, id: sdonation3_l2}:
149
 
    product_uom: product.product_uom_unit
150
 
    product_id: product2
151
 
    order_id: sdonation3
152
 
    price_unit: 3
153
 
    product_uom_qty: 30
154
 
    name: P2
155
 
    date_planned: !eval time.strftime('%Y-%m-%d')
156
 
-
157
 
  We confirm this sale order
158
 
-
159
 
  !workflow {model: sale.order, action: order_confirm, ref: sdonation3}
160
 
-
161
 
  We check if no invoice has been created
162
 
-
163
 
  !python {model: account.invoice}: |
164
 
    invoice_ids = self.search(cr, uid, [('origin', '=', 'Donation3')])
165
 
    assert not invoice_ids, ('Invoice was generated on a Donation before expiry')
166
 
-
167
 
  We check if stock moves was generated with good data
168
 
-
169
 
  !python {model: stock.move}: |
170
 
    move_ids = self.search(cr, uid, [('sale_line_id', 'in', [ref('sdonation3_l1'), ref('sdonation3_l2')])])
171
 
    assert move_ids, ('No stock moves were generated on Donation before expiry')
172
 
    for move in self.browse(cr, uid, move_ids):
173
 
      assert move.order_priority == 'normal', ('Generated move hasn\'t the good priority')
174
 
      assert move.order_category == 'mixed', ('Generated move hasn\'t the good category')
175
 
      assert move.order_type == 'donation_exp', ('Generated move hasn\'t the good type')
176
 
      reason_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'reason_types_moves', 'reason_type_donation_expiry')[1]
177
 
      assert move.picking_id.reason_type_id.id == reason_id, ('Generated picking hasn\'t the good reason type')
178
 
-
179
 
  We create a Standard donation
180
 
-
181
 
  !record {model: sale.order, id: donation4}:
182
 
    name: Donation4
183
 
    company_id: base.main_company
184
 
    picking_policy: direct
185
 
    order_policy: manual
186
 
    invoice_quantity: order
187
 
    partner_order_id: address1
188
 
    partner_invoice_id: address1
189
 
    partner_shipping_id: address1
190
 
    partner_id: supplier1
191
 
    pricelist_id: purchase.list0
192
 
    order_type: donation_st
193
 
-
194
 
  We create line for this donation
195
 
-
196
 
  !record {model: sale.order.line, id: donation4_l1}:
197
 
    product_uom: product.product_uom_unit
198
 
    product_id: product1
199
 
    order_id: donation4
200
 
    price_unit: 1.50
201
 
    product_uom_qty: 10
202
 
    name: P1
203
 
    date_planned: !eval time.strftime('%Y-%m-%d')
204
 
-
205
 
  We create a second line for this donation
206
 
-
207
 
  !record {model: sale.order.line, id: donation4_l2}:
208
 
    product_uom: product.product_uom_unit
209
 
    product_id: product2
210
 
    order_id: donation4
211
 
    price_unit: 3
212
 
    product_uom_qty: 30
213
 
    name: P2
214
 
    date_planned: !eval time.strftime('%Y-%m-%d')
215
 
-
216
 
  We confirm this sale order
217
 
-
218
 
  !workflow {model: sale.order, action: order_confirm, ref: donation4}
219
 
-
220
 
  We check if no invoice has been created
221
 
-
222
 
  !python {model: account.invoice}: |
223
 
    invoice_ids = self.search(cr, uid, [('origin', '=', 'Donation4')])
224
 
    assert not invoice_ids, ('Invoice was generated on a standard donation')
225
 
-
226
 
  We check if stock moves was generated with good data
227
 
-
228
 
  !python {model: stock.move}: |
229
 
    move_ids = self.search(cr, uid, [('sale_line_id', 'in', [ref('donation4_l1'), ref('donation4_l2')])])
230
 
    assert move_ids, ('No stock moves were generated on a standard donation')
231
 
    for move in self.browse(cr, uid, move_ids):
232
 
      assert move.order_priority == 'normal', ('Generated move hasn\'t the good priority')
233
 
      assert move.order_category == 'mixed', ('Generated move hasn\'t the good category')
234
 
      assert move.order_type == 'donation_st', ('Generated move hasn\'t the good type')
235
 
      reason_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'reason_types_moves', 'reason_type_donation')[1]
236
 
      assert move.picking_id.reason_type_id.id == reason_id, ('Generated picking hasn\'t the good reason type')
237
 
-
238
 
  We create a Loan
239
 
-
240
 
  !record {model: sale.order, id: loan5}:
241
 
    name: Loan5
242
 
    company_id: base.main_company
243
 
    picking_policy: direct
244
 
    order_policy: manual
245
 
    invoice_quantity: order
246
 
    partner_order_id: address1
247
 
    partner_invoice_id: address1
248
 
    partner_shipping_id: address1
249
 
    partner_id: supplier1
250
 
    pricelist_id: purchase.list0
251
 
    order_type: loan
252
 
    loan_duration: 6
253
 
-
254
 
  We create line for this loan
255
 
-
256
 
  !record {model: sale.order.line, id: loan5_l1}:
257
 
    product_uom: product.product_uom_unit
258
 
    product_id: product1
259
 
    order_id: loan5
260
 
    price_unit: 1.50
261
 
    product_uom_qty: 10
262
 
    name: P1
263
 
    date_planned: !eval time.strftime('%Y-%m-%d')
264
 
-
265
 
  We create a second line for this sale order
266
 
-
267
 
  !record {model: sale.order.line, id: loan5_l2}:
268
 
    product_uom: product.product_uom_unit
269
 
    product_id: product2
270
 
    order_id: loan5
271
 
    price_unit: 3
272
 
    product_uom_qty: 30
273
 
    name: P2
274
 
    date_planned: !eval time.strftime('%Y-%m-%d')
275
 
-
276
 
  We confirm this sale order
277
 
-
278
 
  !workflow {model: sale.order, action: order_confirm, ref: loan5}
279
 
-
280
 
  We check if no invoice has been created
281
 
-
282
 
  !python {model: account.invoice}: |
283
 
    invoice_ids = self.search(cr, uid, [('origin', '=', 'Loan5')])
284
 
    assert not invoice_ids, ('Invoice was generated on a Loan')
285
 
-
286
 
  We check if stock moves was generated with good data
287
 
-
288
 
  !python {model: stock.move}: |
289
 
    move_ids = self.search(cr, uid, [('sale_line_id', 'in', [ref('loan5_l1'), ref('loan5_l2')])])
290
 
    assert move_ids, ('No stock moves were generated on a Loan')
291
 
    for move in self.browse(cr, uid, move_ids):
292
 
      assert move.order_priority == 'normal', ('Generated move hasn\'t the good priority')
293
 
      assert move.order_category == 'mixed', ('Generated move hasn\'t the good category')
294
 
      assert move.order_type == 'loan', ('Generated move hasn\'t the good type')
295
 
      reason_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'reason_types_moves', 'reason_type_loan')[1]
296
 
      assert move.picking_id.reason_type_id.id == reason_id, ('Generated picking hasn\'t the good reason type')
297
 
-
298
 
  We check if a purchase order for counterpart of the loan has been created
299
 
-
300
 
  !python {model: purchase.order}: |
301
 
    from mx.DateTime import *
302
 
    loan_duration = today() + RelativeDateTime(months=+6)
303
 
    purchase_ids = self.search(cr, uid, [('loan_id', '=', ref('loan5'))])
304
 
    assert purchase_ids, ('No purchase order has been created as counterpart of the loan')
305
 
    for purchase in self.browse(cr, uid, purchase_ids):
306
 
      assert purchase.delivery_requested_date == loan_duration.strftime('%Y-%m-%d'), ('Requested date of the generated purchase order is not equal to two months')
307
 
-
308
 
  We force the assignation of product for the delivery order linked with the loan
309
 
-
310
 
  !python {model: stock.picking}: |
311
 
    pick_ids = self.search(cr, uid, [('sale_id', '=', ref('loan5'))])
312
 
    self.draft_force_assign(cr, uid, pick_ids)
313
 
-
314
 
  We confirm the picking.
315
 
-
316
 
  !python {model: stock.picking }: |
317
 
    import time
318
 
    pick_ids = self.search(cr, uid, [('sale_id', '=', ref('loan5'))])
319
 
    pick=self.browse(cr,uid,pick_ids[0])
320
 
    partial_datas = {
321
 
          'partner_id': pick.address_id.partner_id.id,
322
 
          'address_id': pick.address_id.id,
323
 
          'delivery_date' : time.strftime('%Y-%m-%d')
324
 
         }
325
 
    for move in pick.move_lines:
326
 
        partial_datas['move%s'%(move.id)]= {
327
 
            'product_id': move.product_id,
328
 
            'product_qty': move.product_qty,
329
 
            'product_uom': move.product_uom.id,
330
 
            }
331
 
    self.do_partial(cr, uid, pick_ids,partial_datas)
332
 
-
333
 
  We confirm the purchase order counterpart
334
 
-
335
 
  !python {model: purchase.order}: |
336
 
    import netsvc
337
 
    wf_service = netsvc.LocalService('workflow')
338
 
    purchase_ids = self.search(cr, uid, [('origin', '=', 'Loan5')])
339
 
    for purchase in purchase_ids:
340
 
      wf_service.trg_validate(uid, 'purchase.order', purchase, 'order_confirm', cr)
341
 
-
342
 
  We check if the Loan is now in done state
343
 
-
344
 
  !assert {model: sale.order, id: loan5}:
345
 
    - state == 'done', ('Loan order is not in done state')