[Erp5-report] r19276 - /erp5/trunk/products/ERP5/tests/testResource.py

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Feb 12 17:10:27 CET 2008


Author: alex
Date: Tue Feb 12 17:10:26 2008
New Revision: 19276

URL: http://svn.erp5.org?rev=19276&view=rev
Log:
Test that the default pricing model can deal with purchase and sale supplies,
with and without source or destination set.

Modified:
    erp5/trunk/products/ERP5/tests/testResource.py

Modified: erp5/trunk/products/ERP5/tests/testResource.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testResource.py?rev=19276&r1=19275&r2=19276&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testResource.py (original)
+++ erp5/trunk/products/ERP5/tests/testResource.py Tue Feb 12 17:10:26 2008
@@ -33,6 +33,7 @@
 from AccessControl.SecurityManagement import newSecurityManager
 from zLOG import LOG
 from Products.ERP5Type.tests.Sequence import SequenceList
+from DateTime import DateTime
 
 
 class TestResource(ERP5TypeTestCase):
@@ -47,6 +48,7 @@
   node_portal_type = 'Organisation'
   sale_supply_portal_type = 'Sale Supply'
   sale_supply_line_portal_type = 'Sale Supply Line'
+  purchase_supply_line_portal_type = 'Purchase Supply Line'
   sale_supply_cell_portal_type = 'Sale Supply Cell'
   variation_base_category_list = ['colour', 'size', 'morphology',
                                   'industrial_phase']
@@ -731,6 +733,89 @@
         self.assertEquals(base_price, 
                           product.getPrice())
   
+  def test_12_getPurchaseVsSalePrice(self, quiet=0, run=run_all_test):
+    """
+    Test the pricing model with purchase and sale supply lines, and with
+    source/destination.
+    """
+    if not run: return
+    # Initialize variables
+    product_module = self.portal.getDefaultModule(self.product_portal_type)
+    organisation_module = self.getOrganisationModule()
+    currency_module = self.getCurrencyModule()
+    sale_order_module = self.portal.getDefaultModule("Sale Order")
+    purchase_order_module = self.portal.getDefaultModule("Purchase Order")
+    # Create currency and product
+    currency = currency_module.newContent(
+                     portal_type="Currency",
+                     title='A great currency')
+    product = product_module.newContent(
+        portal_type=self.product_portal_type,
+        title="yet another product")
+    # Create organisations
+    orga1 = organisation_module.newContent(
+        portal_type="Organisation",
+        title="orga1")
+    orga2 = organisation_module.newContent(
+        portal_type="Organisation",
+        title="orga2")
+    # Create sale supply lines
+    product.newContent(
+        portal_type=self.sale_supply_line_portal_type,
+        base_price=100.0,
+        destination_value=orga1)
+    product.newContent(
+        portal_type=self.sale_supply_line_portal_type,
+        base_price=200.0,
+        destination_value=orga2)
+    product.newContent(
+        portal_type=self.sale_supply_line_portal_type,
+        base_price=400.0)
+    # Create purchase supply lines
+    product.newContent(
+        portal_type=self.purchase_supply_line_portal_type,
+        base_price=10.0,
+        source_value=orga1)
+    product.newContent(
+        portal_type=self.purchase_supply_line_portal_type,
+        base_price=20.0,
+        source_value=orga2)
+    product.newContent(
+        portal_type=self.purchase_supply_line_portal_type,
+        base_price=40.0)
+    # Create sale order and check price
+    sale_order = sale_order_module.newContent(
+        portal_type="Sale Order",
+        start_date=DateTime(),
+        stop_date=DateTime())
+    sale_order_line = sale_order.newContent(
+        portal_type="Sale Order Line",
+        resource_value=product)
+    get_transaction().commit()
+    self.tic()
+    self.assertEquals(sale_order_line.getPrice(), 400.0)
+    sale_order.setDestinationValue(orga2)
+    get_transaction().commit()
+    self.tic()
+    sale_order_line.setPrice(None)
+    self.assertEquals(sale_order_line.getPrice(), 200.0)
+    # Create purchase order and check price
+    purchase_order = purchase_order_module.newContent(
+        portal_type="Purchase Order",
+        start_date=DateTime(),
+        stop_date=DateTime())
+    purchase_order_line = purchase_order.newContent(
+        portal_type="Purchase Order Line",
+        resource_value=product)
+    get_transaction().commit()
+    self.tic()
+    self.assertEquals(purchase_order_line.getPrice(), 40.0)
+    purchase_order.setSourceValue(orga2)
+    get_transaction().commit()
+    self.tic()
+    purchase_order_line.setPrice(None)
+    self.assertEquals(purchase_order_line.getPrice(), 20.0)
+  
   def testQuantityPrecision(self):
     """test how to define quantity precision on resources.
     """




More information about the Erp5-report mailing list