Author: novalis
Date: 2007-01-22 14:59:28 -0700 (Mon, 22 Jan 2007)
New Revision: 2229
Modified:
SQLObject/trunk/sqlobject/versioning/__init__.py
SQLObject/trunk/sqlobject/versioning/test/test_version.py
Log:
do not restore attributes that are extra to the version
Modified: SQLObject/trunk/sqlobject/versioning/__init__.py
===================================================================
--- SQLObject/trunk/sqlobject/versioning/__init__.py 2007-01-22 21:26:24 UTC (rev 2228)
+++ SQLObject/trunk/sqlobject/versioning/__init__.py 2007-01-22 21:59:28 UTC (rev 2229)
@@ -7,6 +7,8 @@
del values['id']
del values['masterID']
del values['dateArchived']
+ for col in self.extraCols:
+ del values[col]
self.masterClass.get(self.masterID).set(**values)
def nextVersion(self):
@@ -65,6 +67,7 @@
attrs = {'dateArchived': DateTimeCol(default=datetime.now),
'master': ForeignKey(self.soClass.__name__),
'masterClass' : self.soClass,
+ 'extraCols' : self.extraCols
}
getColumns (attrs, self.soClass)
Modified: SQLObject/trunk/sqlobject/versioning/test/test_version.py
===================================================================
--- SQLObject/trunk/sqlobject/versioning/test/test_version.py 2007-01-22 21:26:24 UTC (rev 2228)
+++ SQLObject/trunk/sqlobject/versioning/test/test_version.py 2007-01-22 21:59:28 UTC (rev 2229)
@@ -121,6 +121,13 @@
assert monarchy.name == "USA"
assert monarchy.monarch == "Emperor Norton I"
+ extra = Extra(name='fleem')
+ extra.set(name='morx')
+ assert extra.name == "morx"
+ extra.versions[0].restore()
+ assert extra.name == "fleem"
+
+
def test_next():
setup()
base = Base(name='first', value=1)
|