From 0f81d50e11b109f1b6544e243f630ab8f1b4f34e Mon Sep 17 00:00:00 2001 From: Kazuhiko Shiozaki <kazuhiko@nexedi.com> Date: Mon, 2 Nov 2009 10:56:27 +0000 Subject: [PATCH] * use a Project document for source_project or destination_project. * add tests for source_project case. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@30200 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5/tests/testInventoryAPI.py | 37 +++++++++++++++++++------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/product/ERP5/tests/testInventoryAPI.py b/product/ERP5/tests/testInventoryAPI.py index e4338e8d26..3716161f22 100644 --- a/product/ERP5/tests/testInventoryAPI.py +++ b/product/ERP5/tests/testInventoryAPI.py @@ -111,6 +111,8 @@ class InventoryAPITestCase(ERP5TypeTestCase): portal_type='Bank Account') self.mirror_section = self._makeOrganisation(title='Mirror Section') self.mirror_node = self._makeOrganisation(title='Mirror Node') + self.project = self._makeProject(title='Project') + self.other_project = self._makeProject(title='Other Project') self.resource = self.getProductModule().newContent( title='Resource', portal_type='Product') @@ -198,7 +200,8 @@ class InventoryAPITestCase(ERP5TypeTestCase): """ erp5_trade is required for transit_simulation_state erp5_apparel is required for item """ - return ('erp5_base', 'erp5_pdm', 'erp5_dummy_movement', 'erp5_trade', 'erp5_apparel') + return ('erp5_base', 'erp5_pdm', 'erp5_dummy_movement', 'erp5_trade', + 'erp5_apparel', 'erp5_project') # TODO: move this to a base class {{{ @reindex @@ -209,6 +212,14 @@ class InventoryAPITestCase(ERP5TypeTestCase): **kw) return org + @reindex + def _makeProject(self, **kw): + """Creates an project.""" + prj = self.getPortal().project_module.newContent( + portal_type='Project', + **kw) + return prj + @reindex def _makeSalePackingList(self, **kw): """Creates a sale packing list.""" @@ -442,25 +453,33 @@ class TestInventory(InventoryAPITestCase): """Tests inventory on project""" getInventory = self.getSimulationTool().getInventory self._makeMovement(quantity=100, - destination_project_value=self.mirror_node) + destination_project_value=self.project) + self._makeMovement(quantity=100, + source_project_value=self.other_project) self.assertEquals(getInventory( - project=self.mirror_node.getRelativeUrl()), 100) + project=self.project.getRelativeUrl()), 100) + self.assertEquals(getInventory( + project=self.other_project.getRelativeUrl()), -100) def test_ProjectUid(self): """Tests inventory on project uid""" getInventory = self.getSimulationTool().getInventory self._makeMovement(quantity=100, - destination_project_value=self.mirror_node) + destination_project_value=self.project) + self._makeMovement(quantity=100, + source_project_value=self.other_project) + self.assertEquals(getInventory( + project_uid=self.project.getUid()), 100) self.assertEquals(getInventory( - project_uid=self.mirror_node.getUid()), 100) + project_uid=self.other_project.getUid()), -100) def test_ProjectCategory(self): """Tests inventory on project category""" # this test uses unrealistic data getInventory = self.getSimulationTool().getInventory - self.mirror_node.setGroup('level1/level2') + self.project.setGroup('level1/level2') self._makeMovement(quantity=100, - destination_project_value=self.mirror_node) + destination_project_value=self.project) self.assertEquals(getInventory( project_category='group/level1'), 100) self.assertEquals(getInventory( @@ -470,9 +489,9 @@ class TestInventory(InventoryAPITestCase): """Tests inventory on project category strict membership""" # this test uses unrealistic data getInventory = self.getSimulationTool().getInventory - self.mirror_node.setGroup('level1/level2') + self.project.setGroup('level1/level2') self._makeMovement(quantity=100, - destination_project_value=self.mirror_node) + destination_project_value=self.project) self.assertEquals(getInventory( project_category_strict_membership='group/level1'), 0) self.assertEquals(getInventory( -- 2.30.9