]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
fixed pydoc bug in [ticket:564]
authorMike Bayer <mike_mp@zzzcomputing.com>
Sun, 29 Jul 2007 02:13:29 +0000 (02:13 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sun, 29 Jul 2007 02:13:29 +0000 (02:13 +0000)
lib/sqlalchemy/sql.py
test/sql/select.py

index ff92f0b430044f0e8544edfa8ddeda1f18a429ea..0cc7d11ed23c146a310d118e90dfe7efbbfe3afe 100644 (file)
@@ -732,7 +732,14 @@ class _FunctionGenerator(object):
         self.opts = opts
 
     def __getattr__(self, name):
-        if name[-1] == '_':
+        # passthru __ attributes; fixes pydoc
+        if name.startswith('__'):
+            try:
+                return self.__dict__[name]
+            except KeyError:
+                raise AttributeError(name)
+                
+        elif name.startswith('_'):
             name = name[0:-1]
         f = _FunctionGenerator(**self.opts)
         f.__names = list(self.__names) + [name]
index a5cf061e21ef96a191b87dd466bf48ccb576de41..6dc4ae0f7976aa8e828caa36ac0137bbbff391f1 100644 (file)
@@ -625,6 +625,14 @@ FROM mytable, myothertable WHERE foo.id = foofoo(lala) AND datetime(foo) = Today
         # test None becomes NULL
         self.runtest(func.my_func(1,2,None,3), "my_func(:my_func, :my_func_1, NULL, :my_func_2)")
         
+        # assert func raises AttributeError for __bases__ attribute, since its not a class
+        # fixes pydoc
+        try:
+            func.__bases__
+            assert False
+        except AttributeError:
+            assert True
+        
     def testextract(self):
         """test the EXTRACT function"""
         self.runtest(select([extract("month", table3.c.otherstuff)]), "SELECT extract(month FROM thirdtable.otherstuff) FROM thirdtable")