diff --git a/product/ERP5/tests/testTransformation.py b/product/ERP5/tests/testTransformation.py index b08b03f7b5dd541440eb49531df14f7c1e6f21ac..87e8a16eec5968fc8dd75b043d009812aca54ba7 100644 --- a/product/ERP5/tests/testTransformation.py +++ b/product/ERP5/tests/testTransformation.py @@ -26,8 +26,8 @@ # ############################################################################## -from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase from testProductionOrder import TestProductionOrderMixin +from testInventoryAPI import BaseTestUnitConversion import transaction class TestTransformationMixin(TestProductionOrderMixin): @@ -92,12 +92,24 @@ class TestTransformationMixin(TestProductionOrderMixin): resource.setVariationCategoryList(self.button_variation_category_list) -class TestTransformation(TestTransformationMixin, ERP5TypeTestCase): +class TestTransformation(TestTransformationMixin, BaseTestUnitConversion): + QUANTITY_UNIT_DICT = { + # base: (reference, dict_of_others) + 'mass': ('kilogram', dict(gram=0.001)), + } + METRIC_TYPE_CATEGORY_LIST = ( + 'mass/net', + ) + + def afterSetUp(self): + TestTransformationMixin.afterSetUp(self) + BaseTestUnitConversion.afterSetUp(self) def getBusinessTemplateList(self): """ """ - return ('erp5_base','erp5_pdm', 'erp5_trade', 'erp5_mrp',) + return ('erp5_base','erp5_pdm', 'erp5_trade', 'erp5_mrp', 'erp5_apparel', + 'erp5_dummy_movement', 'erp5_project') def test_01_getAggregatedAmountListSimple(self): """ @@ -213,6 +225,7 @@ class TestTransformation(TestTransformationMixin, ERP5TypeTestCase): variation_base_category_list = self.swimsuit_variation_base_category_list ) transformation.setResourceValue(swimsuit) + transaction.commit() fabric = self.createResource( 'Fabric', @@ -284,6 +297,11 @@ class TestTransformation(TestTransformationMixin, ERP5TypeTestCase): transaction.commit() self.tic() + self.assertEqual(swimsuit.getDefaultTransformationValue().getRelativeUrl(), + transformation.getRelativeUrl()) + self.assertEqual(fabric.getDefaultTransformationValue(), None) + self.assertEqual(button.getDefaultTransformationValue(), None) + # Swimming Suit does not use ALL categories in Size category. # As a result, transformation lines should restrict their dimensions, # using the range induced by the resource, instead of naively @@ -325,8 +343,40 @@ class TestTransformation(TestTransformationMixin, ERP5TypeTestCase): self.fail("Invalid Resource: %s" % resource) n += 1 + + for size in self.size_category_list: + for colour in self.colour_category_list: + self.makeMovement(swimsuit_quantity, swimsuit, size, colour) + + transaction.commit() + self.tic() + + inv = self.getSimulationTool().getInventoryList( + node_uid=self.node.getUid(), + transformed_resource=[fabric.getRelativeUrl(), + button.getRelativeUrl(), + "operation/sewing"], + ) + self.assertEquals(len(inv), + len(transformation) * len(self.size_category_list) \ + * len(self.colour_category_list)) + + return # XXX (will be expanded) + for i, size in enumerate(self.size_category_list): + for colour in self.colour_category_list: + variation_text = '\n'.join([colour, size]) + inv = self.getSimulationTool().getInventoryList( + node_uid=self.mirror_node.getUid(), + transformed_resource=[fabric.getRelativeUrl(), + button.getRelativeUrl(), + "operation/sewing"], + variation_text=variation_text, + ) + import pdb; pdb.set_trace() + + def test_resourceIsNotAcquiredOnTransformationLines(self): ''' We don't want resource define on transformation to be acquired on