[SQL-CVS] r1570 - in SQLObject/trunk/sqlobject: . tests
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
|
From: <sub...@co...> - 2006-02-06 18:22:07
|
Author: phd
Date: 2006-02-06 11:21:55 -0700 (Mon, 06 Feb 2006)
New Revision: 1570
Modified:
SQLObject/trunk/sqlobject/sqlbuilder.py
SQLObject/trunk/sqlobject/tests/test_basic.py
Log:
Fixed the bug 1410910: __getattr__ should raise AttributeError.
Modified: SQLObject/trunk/sqlobject/sqlbuilder.py
===================================================================
--- SQLObject/trunk/sqlobject/sqlbuilder.py 2006-02-06 17:30:14 UTC (rev 1569)
+++ SQLObject/trunk/sqlobject/sqlbuilder.py 2006-02-06 18:21:55 UTC (rev 1570)
@@ -360,6 +360,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/trunk/sqlobject/tests/test_basic.py
===================================================================
--- SQLObject/trunk/sqlobject/tests/test_basic.py 2006-02-06 17:30:14 UTC (rev 1569)
+++ SQLObject/trunk/sqlobject/tests/test_basic.py 2006-02-06 18:21:55 UTC (rev 1570)
@@ -281,4 +281,12 @@
bob = TestSO1.selectBy(name='bob')[0]
assert bob.sqlmeta.asDict() == {
'passwd': 'tbq', 'name': 'bob', 'id': bob.id}
-
+
+def test_nonexisting_attr():
+ setupClass(Student)
+ try:
+ Student.select(Student.q.nonexisting)
+ except AttributeError:
+ pass
+ else:
+ assert 0, "Expected an AttributeError"
|