[Checkins] SVN: z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/ avoid registering a wrapper twice under the same name

Andreas Jung andreas at andreas-jung.com
Thu Aug 16 03:27:32 EDT 2007


Log message for revision 78868:
  avoid registering a wrapper twice under the same name
  

Changed:
  U   z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/tests/testSQLAlchemy.py
  U   z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/util.py

-=-
Modified: z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/tests/testSQLAlchemy.py
===================================================================
--- z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/tests/testSQLAlchemy.py	2007-08-16 04:07:52 UTC (rev 78867)
+++ z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/tests/testSQLAlchemy.py	2007-08-16 07:27:32 UTC (rev 78868)
@@ -143,6 +143,12 @@
         self.assertRaises(ValueError, getSAWrapper, 'test.wrapperNonExistant')
 
 
+    def testWrapperDoubleRegistrationFailing(self):
+        wrapper = createSAWrapper(self.dsn)
+        registerSAWrapper(wrapper, 'test.wrapper2')
+        self.assertRaises(ValueError, registerSAWrapper, wrapper, 'test.wrapper2')
+
+
     def testWrapperDirectRegistration(self):
         wrapper = createSAWrapper(self.dsn, name='test.wrapper3')
         wrapper2 = getSAWrapper('test.wrapper3')

Modified: z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/util.py
===================================================================
--- z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/util.py	2007-08-16 04:07:52 UTC (rev 78867)
+++ z3c.sqlalchemy/trunk/src/z3c/sqlalchemy/util.py	2007-08-16 07:27:32 UTC (rev 78868)
@@ -68,7 +68,10 @@
     """ deferred registration of the wrapper as named utility """
 
     if not registeredWrappers.has_key(name):
-        registeredWrappers[name] = wrapper    
+        registeredWrappers[name] = wrapper 
+    else:
+        raise ValueError("SAWrapper '%s' already registed.\n"
+                         "You can not register a wrapper twice under the same name." % name)
 
 registerSQLAlchemyWrapper = registerSAWrapper
 



More information about the Checkins mailing list