Author: phd
Date: 2006-02-10 07:55:44 -0700 (Fri, 10 Feb 2006)
New Revision: 1589
Modified:
home/phd/SQLObject/paramstyles/sqlobject/dbconnection.py
home/phd/SQLObject/paramstyles/sqlobject/tests/test_foreignKey.py
Log:
Merged patches from the revisions 1586:1588 from the trunk: applied the patch 1410527: allow the use of foreign keys in selects; added a test.
Modified: home/phd/SQLObject/paramstyles/sqlobject/dbconnection.py
===================================================================
--- home/phd/SQLObject/paramstyles/sqlobject/dbconnection.py 2006-02-10 14:54:29 UTC (rev 1588)
+++ home/phd/SQLObject/paramstyles/sqlobject/dbconnection.py 2006-02-10 14:55:44 UTC (rev 1589)
@@ -17,6 +17,7 @@
from cache import CacheSet
import col
popKey = col.popKey
+import main
from joins import sorter
from converters import sqlrepr
import classregistry
@@ -702,10 +703,10 @@
data[col.dbName] = popKey(kw, key)
elif col.foreignName in kw:
obj = popKey(kw, col.foreignName)
- if obj is None:
- data[col.dbName] = None
+ if isinstance(obj, main.SQLObject):
+ data[col.dbName] = obj.id
else:
- data[col.dbName] = obj.id
+ data[col.dbName] = obj
if kw:
# pick the first key from kw to use to raise the error,
raise TypeError, "got an unexpected keyword argument(s): %r" % kw.keys()
Modified: home/phd/SQLObject/paramstyles/sqlobject/tests/test_foreignKey.py
===================================================================
--- home/phd/SQLObject/paramstyles/sqlobject/tests/test_foreignKey.py 2006-02-10 14:54:29 UTC (rev 1588)
+++ home/phd/SQLObject/paramstyles/sqlobject/tests/test_foreignKey.py 2006-02-10 14:55:44 UTC (rev 1589)
@@ -24,6 +24,9 @@
# Select by usual way
s = TestWorkKey.selectBy(composerID=c.id, title='Symphony No. 9')
assert s[0]==w1
+ # selectBy object.id
+ s = TestWorkKey.selectBy(composer=c.id, title='Symphony No. 9')
+ assert s[0]==w1
# selectBy object
s = TestWorkKey.selectBy(composer=c, title='Symphony No. 9')
assert s[0]==w1
|