Author: phd
Date: 2006-02-06 11:22:10 -0700 (Mon, 06 Feb 2006)
New Revision: 1571
Modified:
SQLObject/branches/0.7-bugfix/sqlobject/sqlbuilder.py
SQLObject/branches/0.7-bugfix/sqlobject/tests/test_basic.py
Log:
Fixed the bug 1410910: __getattr__ should raise AttributeError.
Modified: SQLObject/branches/0.7-bugfix/sqlobject/sqlbuilder.py
===================================================================
--- SQLObject/branches/0.7-bugfix/sqlobject/sqlbuilder.py 2006-02-06 18:21:55 UTC (rev 1570)
+++ SQLObject/branches/0.7-bugfix/sqlobject/sqlbuilder.py 2006-02-06 18:22:10 UTC (rev 1571)
@@ -357,6 +357,8 @@
raise AttributeError
if attr == 'id':
return self.FieldClass(self.tableName, self.soClass.sqlmeta.idName, attr)
+ elif attr not in self.soClass.sqlmeta.columns:
+ raise AttributeError("%s instance has no attribute '%s'" % (self.soClass.__name__, attr))
else:
return self.FieldClass(self.tableName,
self.soClass.sqlmeta.columns[attr].dbName,
Modified: SQLObject/branches/0.7-bugfix/sqlobject/tests/test_basic.py
===================================================================
--- SQLObject/branches/0.7-bugfix/sqlobject/tests/test_basic.py 2006-02-06 18:21:55 UTC (rev 1570)
+++ SQLObject/branches/0.7-bugfix/sqlobject/tests/test_basic.py 2006-02-06 18:22:10 UTC (rev 1571)
@@ -275,3 +275,12 @@
assert dep1.other is None
assert dep2.other is None
assert dep3.other is obj2
+
+def test_nonexisting_attr():
+ setupClass(Student)
+ try:
+ Student.select(Student.q.nonexisting)
+ except AttributeError:
+ pass
+ else:
+ assert 0, "Expected an AttributeError"
|