Author: phd
Date: 2006-02-10 07:53:09 -0700 (Fri, 10 Feb 2006)
New Revision: 1587
Modified:
SQLObject/trunk/sqlobject/dbconnection.py
SQLObject/trunk/sqlobject/tests/test_foreignKey.py
Log:
Applied the patch 1410527: allow the use of foreign keys in selects; added a test.
Modified: SQLObject/trunk/sqlobject/dbconnection.py
===================================================================
--- SQLObject/trunk/sqlobject/dbconnection.py 2006-02-07 17:13:06 UTC (rev 1586)
+++ SQLObject/trunk/sqlobject/dbconnection.py 2006-02-10 14:53:09 UTC (rev 1587)
@@ -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
@@ -689,10 +690,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: SQLObject/trunk/sqlobject/tests/test_foreignKey.py
===================================================================
--- SQLObject/trunk/sqlobject/tests/test_foreignKey.py 2006-02-07 17:13:06 UTC (rev 1586)
+++ SQLObject/trunk/sqlobject/tests/test_foreignKey.py 2006-02-10 14:53:09 UTC (rev 1587)
@@ -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
|