summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-08-23 18:17:31 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2010-08-23 18:17:31 -0400
commit42eb68664445c217681479b50fc8b32ff6ca1749 (patch)
tree638aa8731faaf29f34db837a086b8cce910b4755 /examples
parentac9eb5c9c3bc33c38eff5407fa4724c9277ba342 (diff)
downloadsqlalchemy-42eb68664445c217681479b50fc8b32ff6ca1749.tar.gz
- the history_meta versioning recipe sets "unique=False"
when copying columns, so that the versioning table handles multiple rows with repeating values. [ticket:1887]
Diffstat (limited to 'examples')
-rw-r--r--examples/versioning/history_meta.py4
-rw-r--r--examples/versioning/test_versioning.py23
2 files changed, 25 insertions, 2 deletions
diff --git a/examples/versioning/history_meta.py b/examples/versioning/history_meta.py
index a7b03c5bf..c2b283f1a 100644
--- a/examples/versioning/history_meta.py
+++ b/examples/versioning/history_meta.py
@@ -31,6 +31,7 @@ def _history_mapper(local_mapper):
continue
col = column.copy()
+ col.unique = False
if super_mapper and col_references_table(column, super_mapper.local_table):
super_fks.append((col.key, list(super_history_mapper.base_mapper.local_table.primary_key)[0]))
@@ -160,5 +161,4 @@ class VersionedListener(SessionExtension):
for obj in versioned_objects(session.dirty):
create_version(obj, session)
for obj in versioned_objects(session.deleted):
- create_version(obj, session, deleted = True)
-
+ create_version(obj, session, deleted = True) \ No newline at end of file
diff --git a/examples/versioning/test_versioning.py b/examples/versioning/test_versioning.py
index 1a72a0659..2a7a2ca66 100644
--- a/examples/versioning/test_versioning.py
+++ b/examples/versioning/test_versioning.py
@@ -244,5 +244,28 @@ class TestVersioning(TestBase):
SubClassHistory(id=2, name=u's1', type=u'sub', version=1)
]
)
+
+ def test_unique(self):
+ class SomeClass(Base, ComparableEntity):
+ __tablename__ = 'sometable'
+
+ id = Column(Integer, primary_key=True)
+ name = Column(String(50), unique=True)
+ data = Column(String(50))
+
+ self.create_tables()
+ sess = Session()
+ sc = SomeClass(name='sc1', data='sc1')
+ sess.add(sc)
+ sess.commit()
+
+ sc.data = 'sc1modified'
+ sess.commit()
+
+ assert sc.version == 2
+
+ sc.data = 'sc1modified2'
+ sess.commit()
+ assert sc.version == 3