odoo/addons/stock/test/inventory.yml

94 lines
4.0 KiB
YAML

-
In order to test the inventory, I create a new product
-
!record {model: product.product, id: inventory_product}:
name: inventory prod
type: product
-
I create an inventory for this product only
-
!record {model: stock.inventory, id: inventory_test0}:
name: Test
filter: product
product_id: inventory_product
-
I confirm the inventory and check that my inventory has no line, as the product is a new one.
-
!python {model: stock.inventory}: |
self.prepare_inventory(cr, uid, [ref('inventory_test0')], context=context)
inv = self.browse(cr, uid, ref('inventory_test0'), context=context)
assert len(inv.line_ids) == 0, "Wrong number of inventory lines."
-
I add an inventory line and say i have 10 products in stock
-
!record {model: stock.inventory.line, id: inventory_testline0}:
inventory_id: stock.inventory_test0
product_uom_id: product.product_uom_unit
product_id: inventory_product
product_qty: 10
location_id: stock.stock_location_14
-
I Validate this inventory
-
!python {model: stock.inventory}: |
self.action_done(cr, uid, [ref('inventory_test0')], context=context)
-
I check that this inventory has a stock.move and a quant
-
!python {model: stock.inventory}: |
inv = self.browse(cr, uid, ref('inventory_test0'), context=context)
assert len(inv.move_ids) >= 1, "No move created for the inventory."
assert len(inv.move_ids[0].quant_ids) >= 1, "No quant created for this inventory"
-
I check that the quantity on hand is 10 on the location and its parent.
-
!python {model: product.product}: |
context['location'] = ref('stock.stock_location_14')
product = self.browse(cr, uid, ref('inventory_product'), context=context)
assert product.qty_available == 10, 'Expecting 10 products, got %.2f on location stock_location_14!' % (product.qty_available,)
context['location'] = ref('stock.stock_location_stock')
product = self.browse(cr, uid, ref('inventory_product'), context=context)
assert product.qty_available == 10, 'Expecting 10 products, got %.2f on location stock_location_stock!' % (product.qty_available,)
-
I check that the quantity on hand is 0 on a brother location
-
!python {model: product.product}: |
context['location'] = ref('stock.stock_location_components')
product = self.browse(cr, uid, ref('inventory_product'), context=context)
assert product.qty_available == 0, 'Expecting 0 products, got %.2f on location stock_location_components!' % (product.qty_available,)
-
I create another inventory
-
!record {model: stock.inventory, id: inventory_test1}:
name: second test inventory
filter: product
product_id: inventory_product
-
I confirm the inventory and check that my inventory has one line, with a quantity of 10.
-
!python {model: stock.inventory}: |
self.prepare_inventory(cr, uid, [ref('inventory_test1')], context=context)
inv = self.browse(cr, uid, ref('inventory_test1'), context=context)
assert inv.line_ids and len(inv.line_ids) == 1, "Wrong number of inventory lines."
assert inv.line_ids[0].product_qty == 10, "Wrong quantity in inventory line."
assert inv.line_ids[0].product_id.id == ref('inventory_product'), "Wrong product in inventory line."
-
I modify the inventory line and set the quantity to 20 product on this new inventory
-
!python {model: stock.inventory}: |
inv = self.browse(cr, uid, ref('inventory_test1'), context=context)
self.pool.get('stock.inventory.line').write(cr, uid, inv.line_ids[0].id, {'product_qty': 20})
-
I Validate this inventory
-
!python {model: stock.inventory}: |
self.action_done(cr, uid, [ref('inventory_test1')], context=context)
-
I check that the quantity on hand is 20 on the location and it's parent.
-
!python {model: product.product}: |
context['location'] = ref('stock.stock_location_14')
product = self.browse(cr, uid, ref('inventory_product'), context=context)
assert product.qty_available == 20, 'Expecting 20 products, got %.2f on location stock_location_14!' % (product.qty_available,)