[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