[Erp5-report] r21439 - in /erp5/trunk/products/ERP5Type: ./ Accessor/ tests/

nobody at svn.erp5.org nobody at svn.erp5.org
Mon Jun 9 18:30:16 CEST 2008


Author: jerome
Date: Mon Jun  9 18:30:14 2008
New Revision: 21439

URL: http://svn.erp5.org?rev=21439&view=rev
Log:
implement testers for category accessors

Modified:
    erp5/trunk/products/ERP5Type/Accessor/Category.py
    erp5/trunk/products/ERP5Type/Utils.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=21439&r1=21438&r2=21439&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Accessor/Category.py (original)
+++ erp5/trunk/products/ERP5Type/Accessor/Category.py Mon Jun  9 18:30:14 2008
@@ -238,4 +238,9 @@
     psyco.bind(__call__)
 
 
-# And Tester ???
+class Tester(ListGetter):
+  """Tests if the category is set.
+  """
+  def __call__(self, instance, *args, **kw):
+    return not not ListGetter.__call__(self, instance, *args, **kw)
+

Modified: erp5/trunk/products/ERP5Type/Utils.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Utils.py?rev=21439&r1=21438&r2=21439&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Utils.py (original)
+++ erp5/trunk/products/ERP5Type/Utils.py Mon Jun  9 18:30:14 2008
@@ -1859,6 +1859,11 @@
   if not hasattr(property_holder, accessor_name):
     property_holder.registerAccessor(accessor_name, id, Category.DefaultGetter, ())
 
+  accessor_name = 'has' + UpperCase(id)
+  if not hasattr(property_holder, accessor_name):
+    property_holder.registerAccessor(accessor_name, id, Category.Tester, ())
+    property_holder.declareProtected(read_permission, accessor_name)
+
   setter_name = 'set' + UpperCase(id)
   if not hasattr(property_holder, setter_name):
     property_holder.registerAccessor(setter_name, '_' + setter_name, Alias.Reindex, ())

Modified: erp5/trunk/products/ERP5Type/tests/testERP5Type.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/tests/testERP5Type.py?rev=21439&r1=21438&r2=21439&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/tests/testERP5Type.py (original)
+++ erp5/trunk/products/ERP5Type/tests/testERP5Type.py Mon Jun  9 18:30:14 2008
@@ -1793,6 +1793,13 @@
       foo.setRegionValueSet([gamma], 
                     checked_permission=checked_permission)
       self.assertSameSet([beta_path, gamma_path], foo.getRegionList())
+
+      # check hasCategory accessors
+      foo.setRegionValue(None)
+      self.assertEquals(None, foo.getRegion())
+      self.assertFalse(foo.hasRegion())
+      foo.setRegionValue(beta)
+      self.assertTrue(foo.hasRegion())
     
     def test_category_accessor_to_unaccessible_documents(self):
       # Category Accessors raises Unauthorized when you try to access objects




More information about the Erp5-report mailing list