From 6d813e7496934d6a2229eb159ac55a24addb04c0 Mon Sep 17 00:00:00 2001 From: Konsta Vesterinen Date: Sun, 6 Dec 2015 18:26:22 +0200 Subject: [PATCH] Fix column alias handling Fix column alias handling with assert_* functions, refs #175 --- CHANGES.rst | 6 ++++++ sqlalchemy_utils/__init__.py | 2 +- sqlalchemy_utils/asserts.py | 4 ++-- tests/test_asserts.py | 12 +++++++----- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index d45432f..85ab4d5 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -4,6 +4,12 @@ Changelog Here you can see the full list of changes between each SQLAlchemy-Utils release. +0.31.4 (2015-12-06) +^^^^^^^^^^^^^^^^^^^ + +- Fixed column alias handling with assert_* functions (#175) + + 0.31.3 (2015-11-09) ^^^^^^^^^^^^^^^^^^^ diff --git a/sqlalchemy_utils/__init__.py b/sqlalchemy_utils/__init__.py index ed56e95..8396aae 100644 --- a/sqlalchemy_utils/__init__.py +++ b/sqlalchemy_utils/__init__.py @@ -93,4 +93,4 @@ from .types import ( # noqa WeekDaysType ) -__version__ = '0.31.3' +__version__ = '0.31.4' diff --git a/sqlalchemy_utils/asserts.py b/sqlalchemy_utils/asserts.py index 4800c01..b02b04a 100644 --- a/sqlalchemy_utils/asserts.py +++ b/sqlalchemy_utils/asserts.py @@ -41,8 +41,8 @@ from sqlalchemy.exc import DataError, IntegrityError def _update_field(obj, field, value): session = sa.orm.object_session(obj) - table = sa.inspect(obj.__class__).columns[field].table - query = table.update().values(**{field: value}) + column = sa.inspect(obj.__class__).columns[field] + query = column.table.update().values(**{column.key: value}) session.execute(query) session.flush() diff --git a/tests/test_asserts.py b/tests/test_asserts.py index 623ff06..2583217 100644 --- a/tests/test_asserts.py +++ b/tests/test_asserts.py @@ -18,11 +18,13 @@ class AssertionTestCase(TestCase): def create_models(self): class User(self.Base): __tablename__ = 'user' - id = sa.Column(sa.Integer, primary_key=True) - name = sa.Column(sa.String(20)) - age = sa.Column(sa.Integer, nullable=False) - email = sa.Column(sa.String(200), nullable=False, unique=True) - fav_numbers = sa.Column(ARRAY(sa.Integer)) + id = sa.Column('_id', sa.Integer, primary_key=True) + name = sa.Column('_name', sa.String(20)) + age = sa.Column('_age', sa.Integer, nullable=False) + email = sa.Column( + '_email', sa.String(200), nullable=False, unique=True + ) + fav_numbers = sa.Column('_fav_numbers', ARRAY(sa.Integer)) __table_args__ = ( sa.CheckConstraint(sa.and_(age >= 0, age <= 150)),