From c097c5c066a3492e0501132551c19578bfef3a08 Mon Sep 17 00:00:00 2001 From: Konsta Vesterinen Date: Wed, 29 Oct 2014 14:19:42 +0200 Subject: [PATCH] Fix assert_max_length schematics --- CHANGES.rst | 6 ++++++ sqlalchemy_utils/asserts.py | 2 +- tests/test_asserts.py | 8 ++++++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/CHANGES.rst b/CHANGES.rst index e8f8010..c79a45e 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.27.6 (2014-10-29) +^^^^^^^^^^^^^^^^^^^ + +- Fixed assert_max_length not working with non nullable columns + + 0.27.5 (2014-10-24) ^^^^^^^^^^^^^^^^^^^ diff --git a/sqlalchemy_utils/asserts.py b/sqlalchemy_utils/asserts.py index 5f58359..6970495 100644 --- a/sqlalchemy_utils/asserts.py +++ b/sqlalchemy_utils/asserts.py @@ -68,7 +68,7 @@ def _expect_successful_update(obj, field, value, reraise_exc): def _expect_failing_update(obj, field, value, expected_exc): with raises(expected_exc): - _update_field(obj, field, None) + _update_field(obj, field, value) session = sa.orm.object_session(obj) session.rollback() diff --git a/tests/test_asserts.py b/tests/test_asserts.py index 2e436cc..286d0f9 100644 --- a/tests/test_asserts.py +++ b/tests/test_asserts.py @@ -31,13 +31,13 @@ class AssertionTestCase(TestCase): 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), unique=True) + email = sa.Column(sa.String(200), nullable=False, unique=True) self.User = User def setup_method(self, method): TestCase.setup_method(self, method) - user = self.User(name='Someone', age=15) + user = self.User(name='Someone', email='someone@example.com', age=15) self.session.add(user) self.session.commit() self.user = user @@ -73,6 +73,10 @@ class TestAssertMaxLength(AssertionTestCase): assert_max_length(self.user, 'name', 20) assert_max_length(self.user, 'name', 20) + def test_with_non_nullable_column(self): + assert_max_length(self.user, 'email', 200) + assert_max_length(self.user, 'email', 200) + def test_smaller_than_max_length(self): with raises(AssertionError): assert_max_length(self.user, 'name', 19)