From 8bdb9329aaf647685a8611222f7fbabdcfe3bc24 Mon Sep 17 00:00:00 2001
From: Ivan Tyagov <ivan@nexedi.com>
Date: Fri, 4 Sep 2009 11:01:00 +0000
Subject: [PATCH] Implement tests with real Sale Order / Resource / Supply
 Line.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@28824 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5/tests/testSupply.py | 48 ++++++++++----------------------
 1 file changed, 15 insertions(+), 33 deletions(-)

diff --git a/product/ERP5/tests/testSupply.py b/product/ERP5/tests/testSupply.py
index c21b406aed..f80db8accd 100644
--- a/product/ERP5/tests/testSupply.py
+++ b/product/ERP5/tests/testSupply.py
@@ -30,7 +30,6 @@ import unittest
 
 import transaction
 from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
-from AccessControl.SecurityManagement import newSecurityManager
 from Products.ERP5Type.tests.utils import reindex
 from DateTime import DateTime
 
@@ -44,7 +43,7 @@ class TestSupplyMixin:
     """
       List of needed Business Templates
     """
-    return ('erp5_base', 'erp5_pdm', 'erp5_dummy_movement', 'erp5_trade',)
+    return ('erp5_base', 'erp5_pdm', 'erp5_dummy_movement', 'erp5_trade', 'erp5_invoicing')
 
   def afterSetUp(self, quiet=1, run=1):
     self.login()
@@ -58,22 +57,6 @@ class TestSupplyMixin:
                             id='testing_folder')
     self.folder = self.portal.testing_folder
 
-  def changeUser(self, user_id):
-    """
-     Change the current user to user_id
-    """
-    user_folder = self.getPortal().acl_users
-    user = user_folder.getUserById(user_id).__of__(user_folder)
-    newSecurityManager(None, user)
-
-  def createTestUser(self, **kw):
-    """
-    """
-    person = self.portal.person_module.newContent(portal_type="Person", **kw)
-    person.validate()
-
-
-
 class TestSaleSupply(TestSupplyMixin, ERP5TypeTestCase):
   """
     Test Supplies usage
@@ -197,35 +180,34 @@ class TestSaleSupply(TestSupplyMixin, ERP5TypeTestCase):
 
   def test_03_SupplyLineApplied(self, quiet=0, run=run_all_test):
     """
-      Test supply line being found based on different users and security.
-      XXX: Still incimplete.
+      Test supply line being found.
+      XXX: This tests fails for second run due to bug #1248.
     """
     if not run: return
 
     portal = self.portal
-    original_date = DateTime().earliestTime() # lower precision of date
+    original_date = DateTime().earliestTime()
 
     # clean up
     portal.sale_supply_module.manage_delObjects(list(portal.sale_supply_module.objectIds()))
-    portal.person_module.manage_delObjects(list(portal.person_module.objectIds()))
     self.stepTic()
 
-    # movement is in middle of timeframe...
-    movement = self._makeMovement(start_date=original_date)
     supply = self._makeSupply(start_date_range_min=original_date)
     supply_line = self._makeSupplyLine(supply)
     self.stepTic()
-   
-    user_reference = "dummy_%s" %self.supply_portal_type[:5]
-    self.createTestUser(reference=user_reference)
-    self.stepTic()
-    self.changeUser(user_reference)
 
-    res = self.domain_tool.searchPredicateList(movement,
+    # create Sale Order and check Supply Line settings when 
+    # a Resource is set on Sale Order Line
+    product = portal.product_module.newContent(portal_type="Product",
+                                               title = "Product 1")
+    sale_order = portal.sale_order_module.newContent(portal_type = 'Sale Order',
+                                                     start_date = DateTime())
+    sale_order_line = sale_order.newContent(portal_type = 'Sale Order Line')
+    sale_order_line.setResource(product.getRelativeUrl())
+    self.stepTic()
+    supply_line_list = self.domain_tool.searchPredicateList(sale_order,
                                       portal_type=self.supply_line_portal_type)
-    
-    # ...and predicate shall NOT be found
-    self.assertSameSet([], res)
+    self.assertSameSet([supply_line], supply_line_list)
 
 class TestPurchaseSupply(TestSaleSupply):
   """
-- 
2.30.9