From 9532e3878159c7be3d0d54f701cae13eb3db4a6b Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Sun, 16 Sep 2012 21:09:22 -0400 Subject: [PATCH] Merged in millerdev/sqlalchemy (pull request #20) --- lib/sqlalchemy/orm/persistence.py | 2 +- test/orm/test_versioning.py | 37 ++++++++++++++++++++++++++++++- 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/lib/sqlalchemy/orm/persistence.py b/lib/sqlalchemy/orm/persistence.py index b2740f2b2b..a5f833187c 100644 --- a/lib/sqlalchemy/orm/persistence.py +++ b/lib/sqlalchemy/orm/persistence.py @@ -466,7 +466,7 @@ def _emit_update_statements(base_mapper, uowtransaction, if needs_version_id: clause.clauses.append(mapper.version_id_col ==\ sql.bindparam(mapper.version_id_col._label, - type_=col.type)) + type_=mapper.version_id_col.type)) return table.update(clause) diff --git a/test/orm/test_versioning.py b/test/orm/test_versioning.py index 721bd1286d..8d1f6d0148 100644 --- a/test/orm/test_versioning.py +++ b/test/orm/test_versioning.py @@ -1,6 +1,7 @@ +import datetime import sqlalchemy as sa from test.lib import engines, testing -from sqlalchemy import Integer, String, ForeignKey, literal_column, \ +from sqlalchemy import Integer, String, Date, ForeignKey, literal_column, \ orm, exc, select from test.lib.schema import Table, Column from sqlalchemy.orm import mapper, relationship, Session, \ @@ -323,6 +324,40 @@ class VersioningTest(fixtures.MappedTest): s1.merge, f2 ) +class ColumnTypeTest(fixtures.MappedTest): + + @classmethod + def define_tables(cls, metadata): + Table('version_table', metadata, + Column('id', Date, primary_key=True), + Column('version_id', Integer, nullable=False), + Column('value', String(40), nullable=False)) + + @classmethod + def setup_classes(cls): + class Foo(cls.Basic): + pass + + def _fixture(self): + Foo, version_table = self.classes.Foo, self.tables.version_table + + mapper(Foo, version_table, + version_id_col=version_table.c.version_id) + s1 = Session() + return s1 + + @engines.close_open_connections + def test_update(self): + Foo = self.classes.Foo + + s1 = self._fixture() + f1 = Foo(id=datetime.date.today(), value='f1') + s1.add(f1) + s1.commit() + + f1.value='f1rev2' + s1.commit() + class RowSwitchTest(fixtures.MappedTest): @classmethod def define_tables(cls, metadata): -- 2.47.2