Merge pull request #176 from kvesteri/hotfix/175-column-aliases-with-asserts

Fix column alias handling
This commit is contained in:
Konsta Vesterinen
2015-12-06 18:30:54 +02:00
4 changed files with 16 additions and 8 deletions

View File

@@ -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)
^^^^^^^^^^^^^^^^^^^

View File

@@ -93,4 +93,4 @@ from .types import ( # noqa
WeekDaysType
)
__version__ = '0.31.3'
__version__ = '0.31.4'

View File

@@ -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()

View File

@@ -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)),