[Erp5-report] r34559 jm - in /erp5/trunk/products/ERP5Type: Accessor/ tests/

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Apr 14 15:53:45 CEST 2010


Author: jm
Date: Wed Apr 14 15:53:44 2010
New Revision: 34559

URL: http://svn.erp5.org?rev=34559&view=rev
Log:
Make Category.SetSetter accept sets and use sets to remove duplicates

Modified:
    erp5/trunk/products/ERP5Type/Accessor/Category.py
    erp5/trunk/products/ERP5Type/tests/testERP5Type.py

Modified: erp5/trunk/products/ERP5Type/Accessor/Category.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Accessor/Category.py?rev=34559&r1=34558&r2=34559&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Accessor/Category.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/Accessor/Category.py [utf8] Wed Apr 14 15:53:44 2010
@@ -106,19 +106,14 @@
       self.__name__ = id
       self._key = key
 
-    def __call__(self, instance, *args, **kw):
+    def __call__(self, instance, value, *args, **kw):
       """
       We should take care that the provided argument has no
       duplicate values
       """
-      if type(args[0]) in (type([]),type(())):
-        new_list = []
-        for item in args[0]:
-          if item not in new_list:
-            new_list.append(item)
-      else:
-        new_list = args[0]
-      instance._setCategoryMembership(self._key, new_list,
+      if type(value) not in (set, frozenset):
+        value = frozenset(value)
+      instance._setCategoryMembership(self._key, tuple(value),
                                       spec=kw.get('spec',()),
                                       filter=kw.get('filter', None),
                                       portal_type=kw.get('portal_type',()),

Modified: erp5/trunk/products/ERP5Type/tests/testERP5Type.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/tests/testERP5Type.py?rev=34559&r1=34558&r2=34559&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/tests/testERP5Type.py [utf8] (original)
+++ erp5/trunk/products/ERP5Type/tests/testERP5Type.py [utf8] Wed Apr 14 15:53:44 2010
@@ -711,30 +711,25 @@
       self.assertEquals(person.getRegion(), 'alpha')
       person.setRegionList(['alpha', 'alpha'])
       self.assertEquals(person.getRegionList(), ['alpha', 'alpha'])
-      person.setRegionSet(['alpha', 'alpha'])
       self.assertEquals(person.getRegionSet(), ['alpha'])
-      person.setRegionList(['alpha', 'beta', 'alpha'])
-      self.assertEquals(person.getRegionList(), ['alpha', 'beta', 'alpha'])
+      person.setRegionSet(['beta', 'alpha', 'alpha'])
+      self.assertEquals(person.getRegionList(), ['alpha', 'beta'])
+      person.setRegionList(['beta', 'alpha', 'alpha'])
+      self.assertEquals(person.getRegionList(), ['beta', 'alpha', 'alpha'])
       person.setRegionSet(['alpha', 'beta', 'alpha'])
-      result = person.getRegionSet()
-      result.sort()
-      self.assertEquals(result, ['alpha', 'beta'])
-      person.setDefaultRegion('beta')
-      self.assertEquals(person.getDefaultRegion(), 'beta')
-      result = person.getRegionSet()
-      result.sort()
-      self.assertEquals(result, ['alpha', 'beta'])
       self.assertEquals(person.getRegionList(), ['beta', 'alpha'])
       person.setDefaultRegion('alpha')
       self.assertEquals(person.getDefaultRegion(), 'alpha')
-      result = person.getRegionSet()
-      result.sort()
-      self.assertEquals(result, ['alpha', 'beta'])
+      self.assertEquals(sorted(person.getRegionSet()), ['alpha', 'beta'])
       self.assertEquals(person.getRegionList(), ['alpha', 'beta'])
+      person.setDefaultRegion('beta')
+      self.assertEquals(person.getDefaultRegion(), 'beta')
+      self.assertEquals(sorted(person.getRegionSet()), ['alpha', 'beta'])
+      self.assertEquals(person.getRegionList(), ['beta', 'alpha'])
       # Test accessor on documents rather than on categories
       person.setDefaultRegion(person.getRelativeUrl())
       self.assertEquals(person.getDefaultRegion(), person.getRelativeUrl())
-      self.assertEquals(person.getRegionList(), [person.getRelativeUrl(), 'alpha', 'beta'])
+      self.assertEquals(person.getRegionList(), [person.getRelativeUrl(), 'beta', 'alpha'])
       person.setRegion([person.getRelativeUrl(), 'alpha', 'beta'])
       self.assertEquals(person.getRegionList(), [person.getRelativeUrl(), 'alpha', 'beta'])
 




More information about the Erp5-report mailing list