[TEST] sale: test for bug 399817
authorNumerigraphe - Lionel Sausin <ls@numerigraphe.fr>
Fri, 29 Jan 2010 15:11:25 +0000 (16:11 +0100)
committerNumerigraphe - Lionel Sausin <ls@numerigraphe.fr>
Fri, 29 Jan 2010 15:11:25 +0000 (16:11 +0100)
bzr revid: ls@numerigraphe.fr-20100129151125-iove3nwfx0g21gl4

addons/sale/__terp__.py
addons/sale/test/bug399817.xml [new file with mode: 0644]

index 63bb6eb..c137d13 100644 (file)
@@ -62,6 +62,7 @@
         'sale_demo.xml',
         'test/manual_invoice.xml',
         'test/invoice_packing.xml',
+        'test/bug399817.xml',
     ],
     'installable': True,
     'active': False,
diff --git a/addons/sale/test/bug399817.xml b/addons/sale/test/bug399817.xml
new file mode 100644 (file)
index 0000000..511c827
--- /dev/null
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data>
+        <!-- 
+            Illustrate bug #399817
+            SO not marked picked when 2nd delivery canceled
+            
+        -->
+
+        <!-- Resource: sale.order -->
+        <record id="bug399817" model="sale.order">
+            <field name="shop_id" ref="shop" />
+            <field name="name">lp:99817</field>
+            <field name="note">This Order was created to assert that the following bug is fixed:
+                https://bugs.launchpad.net/openobject-addons/+bug/399817
+            </field>
+            <field model="product.pricelist" name="pricelist_id" search="[]" />
+            <field name="user_id" ref="base.user_demo" />
+            <field name="partner_id" ref="base.res_partner_3" />
+            <field name="partner_invoice_id" ref="base.res_partner_address_zen" />
+            <field name="partner_shipping_id" ref="base.res_partner_address_zen" />
+            <field name="partner_order_id" ref="base.res_partner_address_zen" />
+        </record>
+        <record id="bug399817_line1" model="sale.order.line">
+            <field name="order_id" ref="bug399817" />
+            <field name="name">[PC2] Basic+ PC (assembly on order)</field>
+            <field name="product_id" ref="product.product_product_pc2" />
+            <field name="product_uom" ref="product.product_uom_unit" />
+            <field name="product_uom_qty">4</field>
+            <field name="price_unit">750</field>
+            <field name="type">make_to_order</field>
+            <field name="delay">15</field>
+        </record>
+        <workflow action="order_confirm" model="sale.order" ref="bug399817" />
+
+        <!-- copy packing and do the first one -->
+        <!-- this is similar to what the partial packing wizard does (except for quantities) -->
+        <function model="stock.picking" name="copy">
+            <value eval="obj(ref('bug399817')).picking_ids[0].id" model="sale.order" />
+        </function>
+        <function model="stock.picking" name="draft_validate">
+            <value eval="[obj(ref('bug399817')).picking_ids[0].id]" model="sale.order" />
+        </function>
+        <assert id="bug399817" model="sale.order" severity="error" string="the sale order's first picking is done">
+            <test expr="len(picking_ids) == 2" />
+            <test expr="picking_ids[0].state">done</test>
+        </assert>
+
+        <!-- cancel the second packing -->
+        <function model="stock.picking" name="action_cancel">
+            <value eval="[obj(ref('bug399817')).picking_ids[1].id]" model="sale.order" />
+        </function>
+        <assert id="bug399817" model="sale.order" severity="error" string="the sale order's second picking is cancelled">
+            <test expr="picking_ids[1].state">cancel</test>
+        </assert>
+        <assert id="bug399817" model="sale.order" severity="error" string="the sale order's second picking is cancelled">
+            <test expr="shipped == True" /> <!-- at this stage, the order should be marked picked -->
+        </assert>
+    </data>
+</openerp>