Skip to content

Commit

Permalink
Add tests concerning the new field 'related_picking_ids'
Browse files Browse the repository at this point in the history
  • Loading branch information
tafaRU committed Sep 10, 2015
1 parent 3060949 commit eb5525b
Show file tree
Hide file tree
Showing 2 changed files with 135 additions and 33 deletions.
2 changes: 1 addition & 1 deletion stock_picking_invoice_product_group/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Selecting option 'Group by product category' I get the following invoices:
2. product_A - category_1 --> picking_3
2. invoice_2 - partner_1
1. product_B - category_2 --> picking_1
2. product_C - category_2 --> picking_2
2. product_C - category_2 --> picking_3
3. invoice_3 - partner_1
1. product_D - category_3 --> picking_3
4. invoice_4 - partner_2
Expand Down
166 changes: 134 additions & 32 deletions stock_picking_invoice_product_group/tests/test_invoice_product_group.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,103 +27,110 @@ def setUp(self):
'stock_picking_invoice_product_group.partner_1')
self.partner_2 = self.env.ref(
'stock_picking_invoice_product_group.partner_2')
product_A = self.env.ref(
self.product_A = self.env.ref(
'stock_picking_invoice_product_group.product_A')
product_B = self.env.ref(
self.product_B = self.env.ref(
'stock_picking_invoice_product_group.product_B')
product_C = self.env.ref(
self.product_C = self.env.ref(
'stock_picking_invoice_product_group.product_C')
product_D = self.env.ref(
self.product_D = self.env.ref(
'stock_picking_invoice_product_group.product_D')
self.category_1 = self.env.ref(
'stock_picking_invoice_product_group.category_1')
self.category_2 = self.env.ref(
'stock_picking_invoice_product_group.category_2')
self.category_3 = self.env.ref(
'stock_picking_invoice_product_group.category_3')
# ---------------------------------------------------------------------
# Create delivery orders of product A, B, C, D
# ---------------------------------------------------------------------
picking_1 = self.picking_model.create({
self.picking_1 = self.picking_model.create({
'partner_id': self.partner_1.id,
'picking_type_id': self.env.ref('stock.picking_type_out').id})
self.move_model.create({
'name': '/',
'picking_id': picking_1.id,
'picking_id': self.picking_1.id,
'product_uom_qty': 2.0,
'product_id': product_A.id,
'product_uom': product_A.uom_id.id,
'product_id': self.product_A.id,
'product_uom': self.product_A.uom_id.id,
'location_id': self.env.ref('stock.stock_location_stock').id,
'location_dest_id':
self.env.ref('stock.stock_location_customers').id,
})
self.move_model.create({
'name': '/',
'picking_id': picking_1.id,
'picking_id': self.picking_1.id,
'product_uom_qty': 2.0,
'product_id': product_B.id,
'product_uom': product_B.uom_id.id,
'product_id': self.product_B.id,
'product_uom': self.product_B.uom_id.id,
'location_id': self.env.ref('stock.stock_location_stock').id,
'location_dest_id':
self.env.ref('stock.stock_location_customers').id,
})
picking_2 = self.picking_model.create({
self.picking_2 = self.picking_model.create({
'partner_id': self.partner_2.id,
'picking_type_id': self.env.ref('stock.picking_type_out').id})
self.move_model.create({
'name': '/',
'picking_id': picking_2.id,
'picking_id': self.picking_2.id,
'product_uom_qty': 2.0,
'product_id': product_C.id,
'product_uom': product_C.uom_id.id,
'product_id': self.product_C.id,
'product_uom': self.product_C.uom_id.id,
'location_id': self.env.ref('stock.stock_location_stock').id,
'location_dest_id':
self.env.ref('stock.stock_location_customers').id,
})
self.move_model.create({
'name': '/',
'picking_id': picking_2.id,
'picking_id': self.picking_2.id,
'product_uom_qty': 2.0,
'product_id': product_D.id,
'product_uom': product_D.uom_id.id,
'product_id': self.product_D.id,
'product_uom': self.product_D.uom_id.id,
'location_id': self.env.ref('stock.stock_location_stock').id,
'location_dest_id':
self.env.ref('stock.stock_location_customers').id,
})
picking_3 = self.picking_model.create({
self.picking_3 = self.picking_model.create({
'partner_id': self.partner_1.id,
'picking_type_id': self.env.ref('stock.picking_type_out').id})
self.move_model.create({
'name': '/',
'picking_id': picking_3.id,
'picking_id': self.picking_3.id,
'product_uom_qty': 2.0,
'product_id': product_C.id,
'product_uom': product_C.uom_id.id,
'product_id': self.product_C.id,
'product_uom': self.product_C.uom_id.id,
'location_id': self.env.ref('stock.stock_location_stock').id,
'location_dest_id':
self.env.ref('stock.stock_location_customers').id,
})
self.move_model.create({
'name': '/',
'picking_id': picking_3.id,
'picking_id': self.picking_3.id,
'product_uom_qty': 2.0,
'product_id': product_D.id,
'product_uom': product_D.uom_id.id,
'product_id': self.product_D.id,
'product_uom': self.product_D.uom_id.id,
'location_id': self.env.ref('stock.stock_location_stock').id,
'location_dest_id':
self.env.ref('stock.stock_location_customers').id,
})
self.move_model.create({
'name': '/',
'picking_id': picking_3.id,
'picking_id': self.picking_3.id,
'product_uom_qty': 2.0,
'product_id': product_A.id,
'product_uom': product_A.uom_id.id,
'product_id': self.product_A.id,
'product_uom': self.product_A.uom_id.id,
'location_id': self.env.ref('stock.stock_location_stock').id,
'location_dest_id':
self.env.ref('stock.stock_location_customers').id,
})
# ---------------------------------------------------------------------
# Transfer delivery orders
# ---------------------------------------------------------------------
self.transfer_picking(picking_1)
self.transfer_picking(picking_2)
self.transfer_picking(picking_3)
self.picking_ids = [picking_1.id, picking_2.id, picking_3.id]
self.transfer_picking(self.picking_1)
self.transfer_picking(self.picking_2)
self.transfer_picking(self.picking_3)
self.picking_ids = [
self.picking_1.id, self.picking_2.id, self.picking_3.id]

def test_group_by_default(self):
wizard = self.onshipping_model.with_context(
Expand Down Expand Up @@ -173,6 +180,50 @@ def test_group_by_category(self):
invoices_2 = self.invoice_model.search(
[('partner_id', '=', self.partner_2.id)])
self.assertEqual(2, len(invoices_2))
# ---------------------------------------------------------------------
# Check content of related_picking_ids on each invoice
# ---------------------------------------------------------------------
inv_1_categ_1 = self.invoice_model.search(
[('partner_id', '=', self.partner_1.id),
('invoice_line.product_id.categ_id', '=', self.category_1.id),
])
self.assertEqual(1, len(inv_1_categ_1))
self.assertEqual(2, len(inv_1_categ_1.related_picking_ids))
self.assertTrue(self.picking_1 in inv_1_categ_1.related_picking_ids)
self.assertTrue(self.picking_3 in inv_1_categ_1.related_picking_ids)
# ---------------------------------------------------------------------
inv_1_categ_2 = self.invoice_model.search(
[('partner_id', '=', self.partner_1.id),
('invoice_line.product_id.categ_id', '=', self.category_2.id),
])
self.assertEqual(1, len(inv_1_categ_2))
self.assertEqual(2, len(inv_1_categ_2.related_picking_ids))
self.assertTrue(self.picking_1 in inv_1_categ_2.related_picking_ids)
self.assertTrue(self.picking_3 in inv_1_categ_2.related_picking_ids)
# ---------------------------------------------------------------------
inv_1_categ_3 = self.invoice_model.search(
[('partner_id', '=', self.partner_1.id),
('invoice_line.product_id.categ_id', '=', self.category_3.id),
])
self.assertEqual(1, len(inv_1_categ_3))
self.assertEqual(1, len(inv_1_categ_3.related_picking_ids))
self.assertTrue(self.picking_3 in inv_1_categ_3.related_picking_ids)
# ---------------------------------------------------------------------
inv_2_categ_2 = self.invoice_model.search(
[('partner_id', '=', self.partner_2.id),
('invoice_line.product_id.categ_id', '=', self.category_2.id),
])
self.assertEqual(1, len(inv_2_categ_2))
self.assertEqual(1, len(inv_2_categ_2.related_picking_ids))
self.assertTrue(self.picking_2 in inv_2_categ_2.related_picking_ids)
# ---------------------------------------------------------------------
inv_2_categ_3 = self.invoice_model.search(
[('partner_id', '=', self.partner_2.id),
('invoice_line.product_id.categ_id', '=', self.category_3.id),
])
self.assertEqual(1, len(inv_2_categ_3))
self.assertEqual(1, len(inv_2_categ_3.related_picking_ids))
self.assertTrue(self.picking_2 in inv_2_categ_3.related_picking_ids)

def test_group_by_product(self):
wizard = self.onshipping_model.with_context(
Expand All @@ -192,3 +243,54 @@ def test_group_by_product(self):
invoices_2 = self.invoice_model.search(
[('partner_id', '=', self.partner_2.id)])
self.assertEqual(2, len(invoices_2))
# ---------------------------------------------------------------------
# Check content of related_picking_ids on each invoice
# ---------------------------------------------------------------------
inv_1_prod_A = self.invoice_model.search(
[('partner_id', '=', self.partner_1.id),
('invoice_line.product_id', '=', self.product_A.id),
])
self.assertEqual(1, len(inv_1_prod_A))
self.assertEqual(2, len(inv_1_prod_A.related_picking_ids))
self.assertTrue(self.picking_1 in inv_1_prod_A.related_picking_ids)
self.assertTrue(self.picking_3 in inv_1_prod_A.related_picking_ids)
# ---------------------------------------------------------------------
inv_1_prod_B = self.invoice_model.search(
[('partner_id', '=', self.partner_1.id),
('invoice_line.product_id', '=', self.product_B.id),
])
self.assertEqual(1, len(inv_1_prod_B))
self.assertEqual(1, len(inv_1_prod_B.related_picking_ids))
self.assertTrue(self.picking_1 in inv_1_prod_B.related_picking_ids)
# ---------------------------------------------------------------------
inv_1_prod_C = self.invoice_model.search(
[('partner_id', '=', self.partner_1.id),
('invoice_line.product_id', '=', self.product_C.id),
])
self.assertEqual(1, len(inv_1_prod_C))
self.assertEqual(1, len(inv_1_prod_C.related_picking_ids))
self.assertTrue(self.picking_3 in inv_1_prod_C.related_picking_ids)
# ---------------------------------------------------------------------
inv_1_prod_D = self.invoice_model.search(
[('partner_id', '=', self.partner_1.id),
('invoice_line.product_id', '=', self.product_D.id),
])
self.assertEqual(1, len(inv_1_prod_D))
self.assertEqual(1, len(inv_1_prod_D.related_picking_ids))
self.assertTrue(self.picking_3 in inv_1_prod_D.related_picking_ids)
# ---------------------------------------------------------------------
inv_2_prod_C = self.invoice_model.search(
[('partner_id', '=', self.partner_2.id),
('invoice_line.product_id', '=', self.product_C.id),
])
self.assertEqual(1, len(inv_2_prod_C))
self.assertEqual(1, len(inv_2_prod_C.related_picking_ids))
self.assertTrue(self.picking_2 in inv_2_prod_C.related_picking_ids)
# ---------------------------------------------------------------------
inv_2_prod_D = self.invoice_model.search(
[('partner_id', '=', self.partner_2.id),
('invoice_line.product_id', '=', self.product_D.id),
])
self.assertEqual(1, len(inv_2_prod_D))
self.assertEqual(1, len(inv_2_prod_D.related_picking_ids))
self.assertTrue(self.picking_2 in inv_2_prod_D.related_picking_ids)

0 comments on commit eb5525b

Please sign in to comment.