[Erp5-report] r26512 - in /erp5/trunk/products/ERP5: Document/ tests/
nobody at svn.erp5.org
nobody at svn.erp5.org
Mon Apr 20 10:44:59 CEST 2009
Author: seb
Date: Mon Apr 20 10:44:57 2009
New Revision: 26512
URL: http://svn.erp5.org?rev=26512&view=rev
Log:
- fix a very old small error that makes impossible to call a builder
safely several time (we have to look if there is delivery link
from the simulation movement to a non simulation document)
- add unit test in order to make sure that we can call a builder
2 times in the same transaction without any problem
Modified:
erp5/trunk/products/ERP5/Document/DeliveryBuilder.py
erp5/trunk/products/ERP5/tests/testPackingList.py
Modified: erp5/trunk/products/ERP5/Document/DeliveryBuilder.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/Document/DeliveryBuilder.py?rev=26512&r1=26511&r2=26512&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/Document/DeliveryBuilder.py [utf8] (original)
+++ erp5/trunk/products/ERP5/Document/DeliveryBuilder.py [utf8] Mon Apr 20 10:44:57 2009
@@ -129,7 +129,7 @@
movement_list = select_method(**kw)
# XXX Use buildSQLQuery will be better
movement_list = [x for x in movement_list if \
- x.getDeliveryRelatedValueList()==[]]
+ x.getDeliveryValueList()==[]]
# XXX Add predicate test
# XXX FIXME Check that there is no double in the list
# Because we can't trust simulation_select_method
Modified: erp5/trunk/products/ERP5/tests/testPackingList.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5/tests/testPackingList.py?rev=26512&r1=26511&r2=26512&view=diff
==============================================================================
--- erp5/trunk/products/ERP5/tests/testPackingList.py [utf8] (original)
+++ erp5/trunk/products/ERP5/tests/testPackingList.py [utf8] Mon Apr 20 10:44:57 2009
@@ -64,6 +64,17 @@
stepCheckDeliveryBuilding \
stepCheckPackingListIsNotDivergent \
stepCheckOrderPackingList '
+
+ confirmed_order_without_packing_list = default_order_sequence + '\
+ stepCreateNotVariatedResource \
+ stepTic \
+ stepCreateOrderLine \
+ stepSetOrderLineResource \
+ stepSetOrderLineDefaultValues \
+ stepOrderOrder \
+ stepTic \
+ stepConfirmOrder \
+ stepTic '
default_sequence_with_duplicated_lines = default_order_sequence + '\
stepCreateNotVariatedResource \
@@ -1337,6 +1348,37 @@
if err_list:
self.fail(''.join(err_list))
+ def test_15_CheckBuilderCanBeCalledTwiveSafely(self):
+ """
+ Builder design should allows to call the build method as many times as we
+ want. Make sure that we will not have duplicated packing list if build is
+ called several times.
+ """
+ delivery_builder = getattr(self.getPortalObject().portal_deliveries,
+ self.delivery_builder_id)
+
+ def doNothing(self, *args, **kw):
+ pass
+ original_delivery_builder_build = delivery_builder.__class__.build
+
+ try:
+ # We patch the delivery builder to make sure that it will not be
+ # called by activities
+ delivery_builder.__class__.build = doNothing
+ sequence_list = SequenceList()
+
+ # Test with a simply order without cell
+ sequence_string = self.confirmed_order_without_packing_list
+ sequence_list.addSequenceString(sequence_string)
+ sequence_list.play(self)
+
+ # Now restore the build method and make sure first call returns document
+ delivery_builder.__class__.build = original_delivery_builder_build
+ self.assertTrue(len(delivery_builder.build()) > 0)
+ # The second call should returns empty result even if tic not called
+ self.assertTrue(len(delivery_builder.build()) == 0)
+ finally:
+ delivery_builder.build = original_delivery_builder_build
class TestPurchasePackingListMixin(TestPackingListMixin):
"""Mixing class with steps to test purchase packing lists.
More information about the Erp5-report
mailing list