From 68af6f60c40f63dfe15951c9bb844c0bd4b80c91 Mon Sep 17 00:00:00 2001 From: Leonardo Pistone Date: Thu, 30 May 2013 19:26:30 +0200 Subject: [PATCH] [add] stock_optional_valuation: test --- stock_optional_valuation/__openerp__.py | 13 ++-- stock_optional_valuation/test/stock.yml | 95 +++++++++++++++++++++++++ 2 files changed, 102 insertions(+), 6 deletions(-) create mode 100644 stock_optional_valuation/test/stock.yml diff --git a/stock_optional_valuation/__openerp__.py b/stock_optional_valuation/__openerp__.py index e12e7013b..98fa63eee 100644 --- a/stock_optional_valuation/__openerp__.py +++ b/stock_optional_valuation/__openerp__.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- ############################################################################## -# +# # Copyright (C) 2013 Agile Business Group sagl () # # This program is free software: you can redistribute it and/or modify @@ -28,13 +28,14 @@ You can choose which stock moves have to generate inventory valutanion accountin 'author': 'Agile Business Group', 'website': 'http://www.agilebg.com', 'license': 'AGPL-3', - "depends" : ['stock'], - "data" : [ + "depends": ['stock'], + "data": [ "stock_view.xml", - ], - "demo" : [], + ], + "demo": [], 'test': [ - ], + 'test/stock.yml' + ], "active": False, "installable": True } diff --git a/stock_optional_valuation/test/stock.yml b/stock_optional_valuation/test/stock.yml new file mode 100644 index 000000000..f91ebee10 --- /dev/null +++ b/stock_optional_valuation/test/stock.yml @@ -0,0 +1,95 @@ +- + I need a product with real time valuation. +- + !record {model: product.product, id: product.product_product_24}: + valuation: real_time + property_stock_account_input: account.o_expense + property_stock_account_output: account.o_income +- + !record {model: stock.picking, id: outgoing_shipment}: + type: out +- + !record {model: stock.move, id: outgoing_shipment_card}: + picking_id: outgoing_shipment + product_id: product.product_product_24 + product_qty: 2.0 + location_id: stock.stock_location_stock + location_dest_id: stock.location_inventory +- + I confirm outgoing shipment of 2 Graphics Cards from Stock to Inventory Loss +- + !workflow {model: stock.picking, action: button_confirm, ref: outgoing_shipment} +- + I process the picking +- + !python {model: stock.partial.picking}: | + context.update({'active_model': 'stock.picking', 'active_id': ref('outgoing_shipment'), 'active_ids': [ref('outgoing_shipment')]}) +- + !record {model: stock.partial.picking, id: partial_outgoing}: + move_ids: + - quantity: 2.0 + product_id: product.product_product_24 + product_uom: product.product_uom_unit + move_id: outgoing_shipment_card + location_id: stock.stock_location_stock + location_dest_id: stock.location_inventory +- + !python {model: stock.partial.picking }: | + self.do_partial(cr, uid, [ref('partial_outgoing')], context=context) +- + My picking should have generated a Journal Entry with the same name +- + !python {model: stock.picking}: | + picking_name = self.browse(cr, uid, ref('outgoing_shipment'), context=context).name + a_move_obj = self.pool.get('account.move') + # count those + a_move_ids = a_move_obj.search(cr, uid, [('ref', '=', picking_name)]) + assert len(a_move_ids) == 1, "An outgoing picking should generate a Journal Entry" +- + Now I will consider the location to be Internal +- + !record {model: stock.location, id: stock.location_inventory}: + consider_internal: True +- + I repeate the process above. Now no Journal Entry should be generated. +- + !record {model: stock.picking, id: outgoing_shipment_as_internal}: + type: out +- + !record {model: stock.move, id: outgoing_shipment_as_internal_card}: + picking_id: outgoing_shipment_as_internal + product_id: product.product_product_24 + product_qty: 2.0 + location_id: stock.stock_location_stock + location_dest_id: stock.location_inventory + +- + I confirm outgoing shipment of 2 Graphics Cards from Stock to Inventory Loss +- + !workflow {model: stock.picking, action: button_confirm, ref: outgoing_shipment_as_internal} +- + I process the picking +- + !python {model: stock.partial.picking}: | + context.update({'active_model': 'stock.picking', 'active_id': ref('outgoing_shipment_as_internal'), 'active_ids': [ref('outgoing_shipment_as_internal')]}) +- + !record {model: stock.partial.picking, id: partial_outgoing}: + move_ids: + - quantity: 2.0 + product_id: product.product_product_24 + product_uom: product.product_uom_unit + move_id: outgoing_shipment_as_internal_card + location_id: stock.stock_location_stock + location_dest_id: stock.location_inventory +- + !python {model: stock.partial.picking }: | + self.do_partial(cr, uid, [ref('partial_outgoing')], context=context) +- + Now there should be no Journal Entries with the same name +- + !python {model: stock.picking }: | + picking_name = self.browse(cr, uid, ref('outgoing_shipment_as_internal'), context=context).name + a_move_obj = self.pool.get('account.move') + # count those + a_move_ids = a_move_obj.search(cr, uid, [('ref', '=', picking_name)]) + assert len(a_move_ids) == 0, "Locations treater as internal should generate no Journal Entries"