[SQL-CVS] r2173 - in SQLObject/trunk/sqlobject/versioning: . test
SQLObject is a Python ORM.
Brought to you by:
ianbicking,
phd
From: <sub...@co...> - 2007-01-04 19:45:09
|
Author: novalis Date: 2007-01-04 12:44:56 -0700 (Thu, 04 Jan 2007) New Revision: 2173 Modified: SQLObject/trunk/sqlobject/versioning/__init__.py SQLObject/trunk/sqlobject/versioning/test/test_version.py Log: now versions work with foreign keys Modified: SQLObject/trunk/sqlobject/versioning/__init__.py =================================================================== --- SQLObject/trunk/sqlobject/versioning/__init__.py 2007-01-04 18:52:37 UTC (rev 2172) +++ SQLObject/trunk/sqlobject/versioning/__init__.py 2007-01-04 19:44:56 UTC (rev 2173) @@ -11,7 +11,9 @@ def getColumns(columns, cls): for column, defi in cls.sqlmeta.columnDefinitions.items(): - columns[column] = defi.__class__() + if column.endswith("ID") and isinstance(defi, ForeignKey): + column = column[:-2] + columns[column] = defi.__class__(**defi._kw) #ascend heirarchy if cls.sqlmeta.parentClass: Modified: SQLObject/trunk/sqlobject/versioning/test/test_version.py =================================================================== --- SQLObject/trunk/sqlobject/versioning/test/test_version.py 2007-01-04 18:52:37 UTC (rev 2172) +++ SQLObject/trunk/sqlobject/versioning/test/test_version.py 2007-01-04 19:44:56 UTC (rev 2173) @@ -14,6 +14,7 @@ setupClass(Government) setupClass(Monarchy) setupClass(VChild) + setupClass(HasForeign) class MyClass(SQLObject): name = StringCol() @@ -39,6 +40,10 @@ weapon = StringCol() versions = Versioning() +class HasForeign(SQLObject): + foreign = ForeignKey("Base") + versions = Versioning() + def test_versioning(): #the simple case @@ -114,4 +119,10 @@ assert base.versions[0].getChangedFields() == ['Name'] assert sorted(base.versions[1].getChangedFields()) == ['Name', 'Value'] - +def test_foreign_keys(): + setup() + base1 = Base(name='first', value=1) + base2 = Base(name='first', value=1) + has_foreign = HasForeign(foreign = base1) + has_foreign.foreign = base2 + assert has_foreign.versions[0].foreign == base1 |