[TEST] sale: renamed test files
authorNumerigraphe - Lionel Sausin <ls@numerigraphe.fr>
Fri, 29 Jan 2010 11:06:12 +0000 (12:06 +0100)
committerNumerigraphe - Lionel Sausin <ls@numerigraphe.fr>
Fri, 29 Jan 2010 11:06:12 +0000 (12:06 +0100)
bzr revid: ls@numerigraphe.fr-20100129110612-xr42g1w3mrzld0rt

addons/sale/__terp__.py
addons/sale/test/invoice_packing.xml [new file with mode: 0644]
addons/sale/test/manual_invoice.xml [new file with mode: 0644]
addons/sale/test/sale_manual_test.xml [deleted file]
addons/sale/test/sale_picking_test.xml [deleted file]

index e0a4ed5..63bb6eb 100644 (file)
@@ -60,8 +60,8 @@
     ],
     'demo_xml': [
         'sale_demo.xml',
-        'test/sale_manual_test.xml',
-        'test/sale_picking_test.xml',
+        'test/manual_invoice.xml',
+        'test/invoice_packing.xml',
     ],
     'installable': True,
     'active': False,
diff --git a/addons/sale/test/invoice_packing.xml b/addons/sale/test/invoice_packing.xml
new file mode 100644 (file)
index 0000000..113c9ca
--- /dev/null
@@ -0,0 +1,133 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data>
+        <!-- 
+            Tests for an order with invoice from the packings
+        -->
+
+        <!-- Resource: sale.order -->
+        <record id="test_order_2" model="sale.order">
+            <field name="name">test_order_2</field>
+            <field name="note">This Sale Order was used to test the following use case during the installation: Order - Picking - Invoice - Payment</field>
+            <field name="shop_id" ref="shop" />
+            <field model="product.pricelist" name="pricelist_id" search="[]" />
+            <field name="user_id" ref="base.user_root" />
+            <field name="partner_id" ref="base.res_partner_agrolait" />
+            <field name="partner_invoice_id" ref="base.res_partner_address_8" />
+            <field name="partner_shipping_id" ref="base.res_partner_address_8" />
+            <field name="partner_order_id" ref="base.res_partner_address_8" />
+            <field name="order_policy">picking</field>
+        </record>
+        <!-- Resource: sale.order.line -->
+        <record id="test_order_2_line_1" model="sale.order.line">
+            <field name="order_id" ref="test_order_2" />
+            <field name="name">[PC1] Basic PC</field>
+            <field name="product_id" ref="product.product_product_pc1" />
+            <field name="product_uom" ref="product.product_uom_unit" />
+            <field name="price_unit">450</field>
+            <field name="product_uom_qty">2</field>
+            <field name="product_uos_qty">2</field>
+            <field name="type">make_to_stock</field>
+        </record>
+        <record id="test_order_2_line_3" model="sale.order.line">
+            <field name="order_id" ref="test_order_2" />
+            <field name="name">[RAM512] DDR 512MB PC400</field>
+            <field name="product_id" ref="product.product_product_ram512" />
+            <field name="product_uom" ref="product.product_uom_unit" />
+            <field name="price_unit">90</field>
+            <field name="product_uom_qty">3</field>
+            <field name="product_uos_qty">3</field>
+            <field name="type">make_to_stock</field>
+        </record>
+        <assert id="test_order_2" model="sale.order" severity="error" string="The amount of the sale order is correctly computed">
+            <test expr="amount_untaxed == 450*2 + 90*3" />
+            <test expr="state">draft</test>
+        </assert>
+
+        <workflow action="order_confirm" model="sale.order" ref="test_order_2" />
+        <assert id="test_order_2" model="sale.order" string="the sale order is now in progress">
+            <test expr="state">progress</test>
+        </assert>
+
+        <!-- Treat generated picking -->
+        <assert id="test_order_2" model="sale.order" severity="error" string="the sale order has now a correspending packing">
+            <test expr="len(picking_ids) == 1" />
+            <test expr="picking_ids[0].invoice_state">2binvoiced</test>
+            <test expr="picking_ids[0].address_id == partner_shipping_id" />
+        </assert>
+
+        <!-- Here we need to use the function tag because action_assign is a method of stock_picking and not part of the workflow -->
+        <function model="stock.picking" name="action_assign">
+            <value eval="[obj(ref('test_order_2')).picking_ids[0].id]" model="sale.order" />
+        </function>
+        <assert id="test_order_2" model="sale.order" severity="error" string="the sale order's picking is now assigned">
+            <test expr="picking_ids[0].state">assigned</test>
+        </assert>
+
+        <!-- Do the same as in wizard_partial_picking lines 143-144 -->
+        <function model="stock.picking" name="action_move">
+            <value eval="[obj(ref('test_order_2')).picking_ids[0].id]" model="sale.order" />
+        </function>
+        <workflow action="button_done" model="stock.picking">
+            <value eval="obj(ref('test_order_2')).picking_ids[0].id" model="sale.order" />
+        </workflow>
+        <assert id="test_order_2" model="sale.order" string="the sale order's picking is now done">
+            <test expr="picking_ids[0].state">done</test>
+        </assert>
+
+        <!-- Run all schedulers -->
+        <function model="mrp.procurement" name="run_scheduler" />
+        <assert id="test_order_2" model="sale.order" string="the sale order is now done">
+            <test expr="state">done</test>
+            <test expr="shipped == True" />
+            <test expr="invoiced == False" />
+        </assert>
+
+        <!-- Invoice from the packing -->
+        <function model="stock.picking" name="action_invoice_create">
+            <value eval="[obj(ref('test_order_2')).picking_ids[0].id]" model="sale.order" />
+            <value eval="ref('account.sales_journal')" />
+            <value eval="" />
+            <value eval="'out_invoice'" />
+        </function>
+        <assert id="test_order_2" model="sale.order" severity="error" string="the sale order's picking is invoiced">
+            <test expr="picking_ids[0].invoice_state">invoiced</test>
+            <test expr="len(invoice_ids) == 1" />
+            <test expr="invoice_ids[0].amount_untaxed == amount_untaxed" />
+            <test expr="invoice_ids[0].amount_total == amount_total" />
+            <test expr="invoice_ids[0].reconciled == False" />
+            <test expr="invoice_ids[0].residual == 450*2 + 90*3" />
+            <test expr="invoice_ids[0].state">draft</test>
+        </assert>
+
+        <!-- Confirm the invoice -->
+        <workflow action="invoice_open" model="account.invoice">
+            <value eval="obj(ref('test_order_2')).invoice_ids[0].id" model="sale.order" />
+        </workflow>
+        <assert id="test_order_2" model="sale.order" severity="error" string="the sale order's picking is invoiced">
+            <test expr="invoice_ids[0].reconciled == False" />
+            <test expr="invoice_ids[0].residual == amount_total" />
+            <test expr="invoice_ids[0].state">open</test>
+        </assert>
+
+        <!-- Pay the invoice -->
+        <function model="account.invoice" name="pay_and_reconcile">
+            <value eval="[obj(ref('test_order_2')).invoice_ids[0].id]" model="sale.order" />
+            <value eval="obj(ref('test_order_2')).amount_total" model="sale.order" />
+            <value eval="ref('account.cash')" />
+            <value eval="ref('account.period_' + str(int(time.strftime('%m'))))" />
+            <value eval="ref('account.bank_journal')" />
+            <value eval="ref('account.cash')" />
+            <value eval="ref('account.period_' + str(int(time.strftime('%m'))))" />
+            <value eval="ref('account.bank_journal')" />
+        </function>
+        <assert id="test_order_2" model="sale.order" severity="error" string="the sale order's invoice is now paid">
+            <test expr="invoice_ids[0].reconciled == True" />
+            <test expr="invoice_ids[0].residual == 0.0" />
+            <test expr="invoice_ids[0].state">paid</test>
+            <test expr="state">done</test>
+            <test expr="shipped == True" />
+            <test expr="invoiced == True" />
+        </assert>
+    </data>
+</openerp>
diff --git a/addons/sale/test/manual_invoice.xml b/addons/sale/test/manual_invoice.xml
new file mode 100644 (file)
index 0000000..31a0667
--- /dev/null
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+    <data>
+        <!-- 
+            Order - Invoice - Payment - Picking
+        -->
+
+        <!-- Resource: sale.order -->
+        <record id="test_order_1" model="sale.order">
+            <field name="name">test_order_1</field>
+            <field name="note">This Sale Order was used to test the following use case during the installation: Order - Invoice - Payment - Picking</field>
+            <field name="shop_id" ref="shop" />
+            <field model="product.pricelist" name="pricelist_id" search="[]" />
+            <field name="user_id" ref="base.user_root" />
+            <field name="partner_id" ref="base.res_partner_agrolait" />
+            <field name="partner_invoice_id" ref="base.res_partner_address_8" />
+            <field name="partner_shipping_id" ref="base.res_partner_address_8" />
+            <field name="partner_order_id" ref="base.res_partner_address_8" />
+        </record>
+        <!-- Resource: sale.order.line -->
+        <record id="test_order_1_line_1" model="sale.order.line">
+            <field name="order_id" ref="test_order_1" />
+            <field name="name">[PC1] Basic PC</field>
+            <field name="product_id" ref="product.product_product_pc1" />
+            <field name="product_uom" ref="product.product_uom_unit" />
+            <field name="price_unit">450</field>
+            <field name="product_uom_qty">2</field>
+            <field name="product_uos_qty">2</field>
+            <field name="type">make_to_stock</field>
+        </record>
+        <record id="test_order_1_line_3" model="sale.order.line">
+            <field name="order_id" ref="test_order_1" />
+            <field name="name">[RAM512] DDR 512MB PC400</field>
+            <field name="product_id" ref="product.product_product_ram512" />
+            <field name="product_uom" ref="product.product_uom_unit" />
+            <field name="price_unit">90</field>
+            <field name="product_uom_qty">3</field>
+            <field name="product_uos_qty">3</field>
+            <field name="type">make_to_stock</field>
+        </record>
+        <assert id="test_order_1" model="sale.order" severity="error" string="The amount of the sale order is correctly computed">
+            <test expr="amount_untaxed == 450*2 + 90*3" />
+            <test expr="state">draft</test>
+        </assert>
+
+        <!-- Confirm order -->
+        <workflow action="order_confirm" model="sale.order" ref="test_order_1" />
+        <assert id="test_order_1" model="sale.order" severity="error" string="the sale order is now in 'Manual in progress' state">
+            <test expr="state">manual</test>
+            <test expr="len(picking_ids) == 1" />
+            <test expr="picking_ids[0].address_id == partner_shipping_id" />
+            <test expr="picking_ids[0].invoice_state">none</test>
+            <test expr="picking_ids[0].state">confirmed</test> <!-- Used to be desactivated because of MRP_JIT  -->
+        </assert>
+
+        <!-- Invoice order -->
+        <workflow action="manual_invoice" model="sale.order" ref="test_order_1" uid="base.user_root" />
+        <assert id="test_order_1" model="sale.order" string="the sale order is now in progress">
+            <test expr="state">progress</test>
+            <test expr="len(invoice_ids) == 1" />
+            <test expr="invoice_ids[0].amount_untaxed == amount_untaxed" />
+            <test expr="invoice_ids[0].amount_total == amount_total" />
+            <test expr="invoice_ids[0].state">draft</test>
+        </assert>
+
+        <!-- Confirm invoice -->
+        <workflow action="invoice_open" model="account.invoice">
+            <value eval="obj(ref('test_order_1')).invoice_ids[0].id" model="sale.order" />
+        </workflow>
+        <assert id="test_order_1" model="sale.order" severity="error" string="the sale order's picking is invoiced">
+            <test expr="invoice_ids[0].reconciled == False" />
+            <test expr="invoice_ids[0].residual == amount_total" />
+            <test expr="invoice_ids[0].state">open</test>
+        </assert>
+
+        <!-- Pay the invoice -->
+        <function model="account.invoice" name="pay_and_reconcile">
+            <value eval="[obj(ref('test_order_1')).invoice_ids[0].id]" model="sale.order" />
+            <value eval="obj(ref('test_order_1')).amount_total" model="sale.order" />
+            <value eval="ref('account.cash')" />
+            <value eval="ref('account.period_' + str(int(time.strftime('%m'))))" />
+            <value eval="ref('account.bank_journal')" />
+            <value eval="ref('account.cash')" />
+            <value eval="ref('account.period_' + str(int(time.strftime('%m'))))" />
+            <value eval="ref('account.bank_journal')" />
+        </function>
+        <assert id="test_order_1" model="sale.order" severity="error" string="the sale order's invoice is now paid">
+            <test expr="invoice_ids[0].reconciled == True" />
+            <test expr="invoice_ids[0].residual == 0.0" />
+            <test expr="invoice_ids[0].state">paid</test>
+        </assert>
+
+        <!-- assign stock -->
+        <!-- Here we need to use the function tag because action_assign is a method of stock_picking and not part of the workflow -->
+        <function model="stock.picking" name="action_assign">
+            <value eval="[obj(ref('test_order_1')).picking_ids[0].id]" model="sale.order" />
+        </function>
+        <assert id="test_order_1" model="sale.order" severity="error" string="the sale order's picking is now assigned">
+            <test expr="picking_ids[0].state">assigned</test>
+        </assert>
+
+        <!-- Do the same as in wizard_partial_picking lines 143-144 -->
+        <function model="stock.picking" name="action_move">
+            <value eval="[obj(ref('test_order_1')).picking_ids[0].id]" model="sale.order" />
+        </function>
+        <workflow action="button_done" model="stock.picking">
+            <value eval="obj(ref('test_order_1')).picking_ids[0].id" model="sale.order" />
+        </workflow>
+        <assert id="test_order_1" model="sale.order" string="the sale order's picking is now done">
+            <test expr="picking_ids[0].state">done</test>
+            <test expr="shipped == True" />
+            <test expr="invoiced == True" />
+        </assert>
+
+        <!-- Run all schedulers -->
+        <function model="mrp.procurement" name="run_scheduler" />
+        <assert id="test_order_1" model="sale.order" string="the sale order is now done">
+            <test expr="state">done</test>
+        </assert>
+    </data>
+</openerp>
diff --git a/addons/sale/test/sale_manual_test.xml b/addons/sale/test/sale_manual_test.xml
deleted file mode 100644 (file)
index 31a0667..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<openerp>
-    <data>
-        <!-- 
-            Order - Invoice - Payment - Picking
-        -->
-
-        <!-- Resource: sale.order -->
-        <record id="test_order_1" model="sale.order">
-            <field name="name">test_order_1</field>
-            <field name="note">This Sale Order was used to test the following use case during the installation: Order - Invoice - Payment - Picking</field>
-            <field name="shop_id" ref="shop" />
-            <field model="product.pricelist" name="pricelist_id" search="[]" />
-            <field name="user_id" ref="base.user_root" />
-            <field name="partner_id" ref="base.res_partner_agrolait" />
-            <field name="partner_invoice_id" ref="base.res_partner_address_8" />
-            <field name="partner_shipping_id" ref="base.res_partner_address_8" />
-            <field name="partner_order_id" ref="base.res_partner_address_8" />
-        </record>
-        <!-- Resource: sale.order.line -->
-        <record id="test_order_1_line_1" model="sale.order.line">
-            <field name="order_id" ref="test_order_1" />
-            <field name="name">[PC1] Basic PC</field>
-            <field name="product_id" ref="product.product_product_pc1" />
-            <field name="product_uom" ref="product.product_uom_unit" />
-            <field name="price_unit">450</field>
-            <field name="product_uom_qty">2</field>
-            <field name="product_uos_qty">2</field>
-            <field name="type">make_to_stock</field>
-        </record>
-        <record id="test_order_1_line_3" model="sale.order.line">
-            <field name="order_id" ref="test_order_1" />
-            <field name="name">[RAM512] DDR 512MB PC400</field>
-            <field name="product_id" ref="product.product_product_ram512" />
-            <field name="product_uom" ref="product.product_uom_unit" />
-            <field name="price_unit">90</field>
-            <field name="product_uom_qty">3</field>
-            <field name="product_uos_qty">3</field>
-            <field name="type">make_to_stock</field>
-        </record>
-        <assert id="test_order_1" model="sale.order" severity="error" string="The amount of the sale order is correctly computed">
-            <test expr="amount_untaxed == 450*2 + 90*3" />
-            <test expr="state">draft</test>
-        </assert>
-
-        <!-- Confirm order -->
-        <workflow action="order_confirm" model="sale.order" ref="test_order_1" />
-        <assert id="test_order_1" model="sale.order" severity="error" string="the sale order is now in 'Manual in progress' state">
-            <test expr="state">manual</test>
-            <test expr="len(picking_ids) == 1" />
-            <test expr="picking_ids[0].address_id == partner_shipping_id" />
-            <test expr="picking_ids[0].invoice_state">none</test>
-            <test expr="picking_ids[0].state">confirmed</test> <!-- Used to be desactivated because of MRP_JIT  -->
-        </assert>
-
-        <!-- Invoice order -->
-        <workflow action="manual_invoice" model="sale.order" ref="test_order_1" uid="base.user_root" />
-        <assert id="test_order_1" model="sale.order" string="the sale order is now in progress">
-            <test expr="state">progress</test>
-            <test expr="len(invoice_ids) == 1" />
-            <test expr="invoice_ids[0].amount_untaxed == amount_untaxed" />
-            <test expr="invoice_ids[0].amount_total == amount_total" />
-            <test expr="invoice_ids[0].state">draft</test>
-        </assert>
-
-        <!-- Confirm invoice -->
-        <workflow action="invoice_open" model="account.invoice">
-            <value eval="obj(ref('test_order_1')).invoice_ids[0].id" model="sale.order" />
-        </workflow>
-        <assert id="test_order_1" model="sale.order" severity="error" string="the sale order's picking is invoiced">
-            <test expr="invoice_ids[0].reconciled == False" />
-            <test expr="invoice_ids[0].residual == amount_total" />
-            <test expr="invoice_ids[0].state">open</test>
-        </assert>
-
-        <!-- Pay the invoice -->
-        <function model="account.invoice" name="pay_and_reconcile">
-            <value eval="[obj(ref('test_order_1')).invoice_ids[0].id]" model="sale.order" />
-            <value eval="obj(ref('test_order_1')).amount_total" model="sale.order" />
-            <value eval="ref('account.cash')" />
-            <value eval="ref('account.period_' + str(int(time.strftime('%m'))))" />
-            <value eval="ref('account.bank_journal')" />
-            <value eval="ref('account.cash')" />
-            <value eval="ref('account.period_' + str(int(time.strftime('%m'))))" />
-            <value eval="ref('account.bank_journal')" />
-        </function>
-        <assert id="test_order_1" model="sale.order" severity="error" string="the sale order's invoice is now paid">
-            <test expr="invoice_ids[0].reconciled == True" />
-            <test expr="invoice_ids[0].residual == 0.0" />
-            <test expr="invoice_ids[0].state">paid</test>
-        </assert>
-
-        <!-- assign stock -->
-        <!-- Here we need to use the function tag because action_assign is a method of stock_picking and not part of the workflow -->
-        <function model="stock.picking" name="action_assign">
-            <value eval="[obj(ref('test_order_1')).picking_ids[0].id]" model="sale.order" />
-        </function>
-        <assert id="test_order_1" model="sale.order" severity="error" string="the sale order's picking is now assigned">
-            <test expr="picking_ids[0].state">assigned</test>
-        </assert>
-
-        <!-- Do the same as in wizard_partial_picking lines 143-144 -->
-        <function model="stock.picking" name="action_move">
-            <value eval="[obj(ref('test_order_1')).picking_ids[0].id]" model="sale.order" />
-        </function>
-        <workflow action="button_done" model="stock.picking">
-            <value eval="obj(ref('test_order_1')).picking_ids[0].id" model="sale.order" />
-        </workflow>
-        <assert id="test_order_1" model="sale.order" string="the sale order's picking is now done">
-            <test expr="picking_ids[0].state">done</test>
-            <test expr="shipped == True" />
-            <test expr="invoiced == True" />
-        </assert>
-
-        <!-- Run all schedulers -->
-        <function model="mrp.procurement" name="run_scheduler" />
-        <assert id="test_order_1" model="sale.order" string="the sale order is now done">
-            <test expr="state">done</test>
-        </assert>
-    </data>
-</openerp>
diff --git a/addons/sale/test/sale_picking_test.xml b/addons/sale/test/sale_picking_test.xml
deleted file mode 100644 (file)
index 113c9ca..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<openerp>
-    <data>
-        <!-- 
-            Tests for an order with invoice from the packings
-        -->
-
-        <!-- Resource: sale.order -->
-        <record id="test_order_2" model="sale.order">
-            <field name="name">test_order_2</field>
-            <field name="note">This Sale Order was used to test the following use case during the installation: Order - Picking - Invoice - Payment</field>
-            <field name="shop_id" ref="shop" />
-            <field model="product.pricelist" name="pricelist_id" search="[]" />
-            <field name="user_id" ref="base.user_root" />
-            <field name="partner_id" ref="base.res_partner_agrolait" />
-            <field name="partner_invoice_id" ref="base.res_partner_address_8" />
-            <field name="partner_shipping_id" ref="base.res_partner_address_8" />
-            <field name="partner_order_id" ref="base.res_partner_address_8" />
-            <field name="order_policy">picking</field>
-        </record>
-        <!-- Resource: sale.order.line -->
-        <record id="test_order_2_line_1" model="sale.order.line">
-            <field name="order_id" ref="test_order_2" />
-            <field name="name">[PC1] Basic PC</field>
-            <field name="product_id" ref="product.product_product_pc1" />
-            <field name="product_uom" ref="product.product_uom_unit" />
-            <field name="price_unit">450</field>
-            <field name="product_uom_qty">2</field>
-            <field name="product_uos_qty">2</field>
-            <field name="type">make_to_stock</field>
-        </record>
-        <record id="test_order_2_line_3" model="sale.order.line">
-            <field name="order_id" ref="test_order_2" />
-            <field name="name">[RAM512] DDR 512MB PC400</field>
-            <field name="product_id" ref="product.product_product_ram512" />
-            <field name="product_uom" ref="product.product_uom_unit" />
-            <field name="price_unit">90</field>
-            <field name="product_uom_qty">3</field>
-            <field name="product_uos_qty">3</field>
-            <field name="type">make_to_stock</field>
-        </record>
-        <assert id="test_order_2" model="sale.order" severity="error" string="The amount of the sale order is correctly computed">
-            <test expr="amount_untaxed == 450*2 + 90*3" />
-            <test expr="state">draft</test>
-        </assert>
-
-        <workflow action="order_confirm" model="sale.order" ref="test_order_2" />
-        <assert id="test_order_2" model="sale.order" string="the sale order is now in progress">
-            <test expr="state">progress</test>
-        </assert>
-
-        <!-- Treat generated picking -->
-        <assert id="test_order_2" model="sale.order" severity="error" string="the sale order has now a correspending packing">
-            <test expr="len(picking_ids) == 1" />
-            <test expr="picking_ids[0].invoice_state">2binvoiced</test>
-            <test expr="picking_ids[0].address_id == partner_shipping_id" />
-        </assert>
-
-        <!-- Here we need to use the function tag because action_assign is a method of stock_picking and not part of the workflow -->
-        <function model="stock.picking" name="action_assign">
-            <value eval="[obj(ref('test_order_2')).picking_ids[0].id]" model="sale.order" />
-        </function>
-        <assert id="test_order_2" model="sale.order" severity="error" string="the sale order's picking is now assigned">
-            <test expr="picking_ids[0].state">assigned</test>
-        </assert>
-
-        <!-- Do the same as in wizard_partial_picking lines 143-144 -->
-        <function model="stock.picking" name="action_move">
-            <value eval="[obj(ref('test_order_2')).picking_ids[0].id]" model="sale.order" />
-        </function>
-        <workflow action="button_done" model="stock.picking">
-            <value eval="obj(ref('test_order_2')).picking_ids[0].id" model="sale.order" />
-        </workflow>
-        <assert id="test_order_2" model="sale.order" string="the sale order's picking is now done">
-            <test expr="picking_ids[0].state">done</test>
-        </assert>
-
-        <!-- Run all schedulers -->
-        <function model="mrp.procurement" name="run_scheduler" />
-        <assert id="test_order_2" model="sale.order" string="the sale order is now done">
-            <test expr="state">done</test>
-            <test expr="shipped == True" />
-            <test expr="invoiced == False" />
-        </assert>
-
-        <!-- Invoice from the packing -->
-        <function model="stock.picking" name="action_invoice_create">
-            <value eval="[obj(ref('test_order_2')).picking_ids[0].id]" model="sale.order" />
-            <value eval="ref('account.sales_journal')" />
-            <value eval="" />
-            <value eval="'out_invoice'" />
-        </function>
-        <assert id="test_order_2" model="sale.order" severity="error" string="the sale order's picking is invoiced">
-            <test expr="picking_ids[0].invoice_state">invoiced</test>
-            <test expr="len(invoice_ids) == 1" />
-            <test expr="invoice_ids[0].amount_untaxed == amount_untaxed" />
-            <test expr="invoice_ids[0].amount_total == amount_total" />
-            <test expr="invoice_ids[0].reconciled == False" />
-            <test expr="invoice_ids[0].residual == 450*2 + 90*3" />
-            <test expr="invoice_ids[0].state">draft</test>
-        </assert>
-
-        <!-- Confirm the invoice -->
-        <workflow action="invoice_open" model="account.invoice">
-            <value eval="obj(ref('test_order_2')).invoice_ids[0].id" model="sale.order" />
-        </workflow>
-        <assert id="test_order_2" model="sale.order" severity="error" string="the sale order's picking is invoiced">
-            <test expr="invoice_ids[0].reconciled == False" />
-            <test expr="invoice_ids[0].residual == amount_total" />
-            <test expr="invoice_ids[0].state">open</test>
-        </assert>
-
-        <!-- Pay the invoice -->
-        <function model="account.invoice" name="pay_and_reconcile">
-            <value eval="[obj(ref('test_order_2')).invoice_ids[0].id]" model="sale.order" />
-            <value eval="obj(ref('test_order_2')).amount_total" model="sale.order" />
-            <value eval="ref('account.cash')" />
-            <value eval="ref('account.period_' + str(int(time.strftime('%m'))))" />
-            <value eval="ref('account.bank_journal')" />
-            <value eval="ref('account.cash')" />
-            <value eval="ref('account.period_' + str(int(time.strftime('%m'))))" />
-            <value eval="ref('account.bank_journal')" />
-        </function>
-        <assert id="test_order_2" model="sale.order" severity="error" string="the sale order's invoice is now paid">
-            <test expr="invoice_ids[0].reconciled == True" />
-            <test expr="invoice_ids[0].residual == 0.0" />
-            <test expr="invoice_ids[0].state">paid</test>
-            <test expr="state">done</test>
-            <test expr="shipped == True" />
-            <test expr="invoiced == True" />
-        </assert>
-    </data>
-</openerp>