[Erp5-report] r10030 - in /erp5/trunk/products/CMFCategory: ./ tests/

nobody at svn.erp5.org nobody at svn.erp5.org
Sat Sep 16 15:48:56 CEST 2006


Author: jerome
Date: Sat Sep 16 15:48:52 2006
New Revision: 10030

URL: http://svn.erp5.org?rev=10030&view=rev
Log:
Implement support for strict_membership in getCategoryMemberValueList. from Guy Oswald Obama


Modified:
    erp5/trunk/products/CMFCategory/CategoryTool.py
    erp5/trunk/products/CMFCategory/tests/testCMFCategory.py

Modified: erp5/trunk/products/CMFCategory/CategoryTool.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFCategory/CategoryTool.py?rev=10030&r1=10029&r2=10030&view=diff
==============================================================================
--- erp5/trunk/products/CMFCategory/CategoryTool.py (original)
+++ erp5/trunk/products/CMFCategory/CategoryTool.py Sat Sep 16 15:48:52 2006
@@ -1380,11 +1380,14 @@
         else:
           raise CategoryError('getCategoryMemberValueList must know the base category')
       strict_membership = kw.get('strict_membership', kw.get('strict', 0))
-      catalog_search = self.portal_catalog(portal_type = portal_type,
-                      # TODO: make it work in catalog tool
-                      # category_strict_membership = strict_membership,
-                      selection_domain = DomainSelection(domain_dict = {base_category:context}))
-
+
+      if strict_membership:
+        catalog_search = self.portal_catalog(portal_type = portal_type,
+		           selection_report = DomainSelection(domain_dict = {base_category:context}))
+      else:
+        catalog_search = self.portal_catalog(portal_type = portal_type,
+                           selection_domain = DomainSelection(domain_dict = {base_category:context}))
+      
       return catalog_search
 
     security.declareProtected( Permissions.AccessContentsInformation, 'getCategoryMemberItemList' )

Modified: erp5/trunk/products/CMFCategory/tests/testCMFCategory.py
URL: http://svn.erp5.org/erp5/trunk/products/CMFCategory/tests/testCMFCategory.py?rev=10030&r1=10029&r2=10030&view=diff
==============================================================================
--- erp5/trunk/products/CMFCategory/tests/testCMFCategory.py (original)
+++ erp5/trunk/products/CMFCategory/tests/testCMFCategory.py Sat Sep 16 15:48:52 2006
@@ -611,6 +611,49 @@
     region_value.setCategoryList(category_list)
     self.assertEqual(category_list, region_value.getCategoryList())
 
+  def test_19_CategoryMemberValueList(self, quiet=0, run=run_all_test):
+    """Test strict_membership parameter to Category Member Value List """
+    if not run : return
+    if not quiet:
+      message = 'Test strict_membership and Category Member Value List'
+      ZopeTestCase._print('\n '+message)
+      LOG('Testing... ',0,message)
+      
+      portal_categories = self.getCategoryTool()
+      organisation = self.getOrganisationModule().newContent(
+                portal_type='Organisation', region='west/france')
+
+      get_transaction().commit()
+      self.tic()
+      
+      self.assertEquals([x.getObject() for x in 
+                          portal_categories.getCategoryMemberValueList(
+                            portal_categories.region.west.france,
+                            base_category='region',
+                            strict_membership=0,
+                            portal_type='Organisation')], [organisation])
+
+      self.assertEquals([x.getObject() for x in 
+                         portal_categories.getCategoryMemberValueList(
+                            portal_categories.region.west.france,
+                            base_category='region',
+                            strict_membership=1,
+                            portal_type='Organisation')], [organisation])
+
+      self.assertEquals([x.getObject() for x in 
+                         portal_categories.getCategoryMemberValueList(
+                            portal_categories.region.west,
+                            base_category='region',
+                            strict_membership=0,
+                            portal_type='Organisation')], [organisation])
+
+      self.assertEquals([x.getObject() for x in 
+                        portal_categories.getCategoryMemberValueList(
+                            portal_categories.region.west,
+                            base_category='region',
+                            strict_membership=1,
+                            portal_type='Organisation')], [])
+
 if __name__ == '__main__':
     framework()
 else:




More information about the Erp5-report mailing list