[Erp5-report] r16809 - in /erp5/trunk/products: ERP5Catalog/tests/ ZSQLCatalog/

nobody at svn.erp5.org nobody at svn.erp5.org
Wed Oct 3 17:54:48 CEST 2007


Author: jerome
Date: Wed Oct  3 17:54:47 2007
New Revision: 16809

URL: http://svn.erp5.org?rev=16809&view=rev
Log:
Conceptually, __getitem__ must raise a KeyError when not found.
This is required for portal_catalog.getObject to work properly. Without this
patch, context.portal_catalog.getObject(uid) returns 'context' if 'uid' is not
in the catalog.
( This is the reason for functional tests failures on listbox validation )



Modified:
    erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py
    erp5/trunk/products/ZSQLCatalog/SQLCatalog.py

Modified: erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py?rev=16809&r1=16808&r2=16809&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py (original)
+++ erp5/trunk/products/ERP5Catalog/tests/testERP5Catalog.py Wed Oct  3 17:54:47 2007
@@ -501,7 +501,26 @@
     # portal_catalog.getObject raises a ValueError if UID parameter is a string
     portal_catalog = self.getCatalogTool()
     self.assertRaises(ValueError, portal_catalog.getObject, "StringUID")
+     
+    obj = self._makeOrganisation()
+    # otherwise it returns the object
+    self.assertEquals(obj, portal_catalog.getObject(obj.getUid()).getObject())
+    # but raises KeyError if object is not in catalog
+    self.assertRaises(KeyError, portal_catalog.getObject, sys.maxint)
   
+  def test_getitem(self):
+    portal_catalog = self.getCatalogTool()
+    obj = self._makeOrganisation()
+    self.assertEquals(obj,
+        portal_catalog.getSQLCatalog()[obj.getUid()].getObject())
+    
+  def test_path(self):
+    portal_catalog = self.getCatalogTool()
+    obj = self._makeOrganisation()
+    self.assertEquals(obj.getPath(), portal_catalog.getpath(obj.getUid()))
+    self.assertRaises(KeyError, portal_catalog.getpath, sys.maxint)
+
+     
   def test_16_newUid(self, quiet=quiet, run=run_all_test):
     if not run: return
     if not quiet:

Modified: erp5/trunk/products/ZSQLCatalog/SQLCatalog.py
URL: http://svn.erp5.org/erp5/trunk/products/ZSQLCatalog/SQLCatalog.py?rev=16809&r1=16808&r2=16809&view=diff
==============================================================================
--- erp5/trunk/products/ZSQLCatalog/SQLCatalog.py (original)
+++ erp5/trunk/products/ZSQLCatalog/SQLCatalog.py Wed Oct  3 17:54:47 2007
@@ -1073,8 +1073,7 @@
     search_result = method(uid = uid)
     if len(search_result) > 0:
       return search_result[0]
-    else:
-      return None
+    raise KeyError, uid
 
   def editSchema(self, names_list):
     """




More information about the Erp5-report mailing list