From f215925bea1e0e170e5d80457cb18202736b926b Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Tue, 13 Jan 2015 20:19:17 -0500 Subject: [PATCH] - the enum render is an 0.9 regression, apparently we used a different repr() scheme in 0.7.9->0.8 that didn't omit native_enum --- alembic/testing/requirements.py | 7 +++++++ alembic/util.py | 1 + tests/test_autogen_render.py | 8 ++++++-- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/alembic/testing/requirements.py b/alembic/testing/requirements.py index 1e8a0a6..b981951 100644 --- a/alembic/testing/requirements.py +++ b/alembic/testing/requirements.py @@ -31,6 +31,13 @@ class SuiteRequirements(Requirements): "MATCH for foreign keys added in SQLAlchemy 0.8.0" ) + @property + def fail_before_sqla_079(self): + return exclusions.fails_if( + lambda config: not util.sqla_079, + "SQLAlchemy 0.7.9 or greater required" + ) + @property def fail_before_sqla_080(self): return exclusions.fails_if( diff --git a/alembic/util.py b/alembic/util.py index 3d2c541..d9ec1c8 100644 --- a/alembic/util.py +++ b/alembic/util.py @@ -27,6 +27,7 @@ def _safe_int(value): _vers = tuple( [_safe_int(x) for x in re.findall(r'(\d+|[abc]\d)', __version__)]) sqla_07 = _vers > (0, 7, 2) +sqla_079 = _vers >= (0, 7, 9) sqla_08 = _vers >= (0, 8, 0) sqla_083 = _vers >= (0, 8, 3) sqla_084 = _vers >= (0, 8, 4) diff --git a/tests/test_autogen_render.py b/tests/test_autogen_render.py index 59def1b..3083857 100644 --- a/tests/test_autogen_render.py +++ b/tests/test_autogen_render.py @@ -1,6 +1,6 @@ import re import sys -from alembic.testing import TestBase +from alembic.testing import TestBase, exclusions from sqlalchemy import MetaData, Column, Table, String, \ Numeric, CHAR, ForeignKey, DATETIME, Integer, \ @@ -925,6 +925,7 @@ unique=False, """ "existing_server_default='5')" ) + @config.requirements.fail_before_sqla_079 def test_render_enum(self): eq_ignore_whitespace( autogenerate.render._repr_type( @@ -939,7 +940,10 @@ unique=False, """ "sa.Enum('one', 'two', 'three')" ) - @config.requirements.fail_before_sqla_099 + @exclusions.fails_if( + lambda config: (util.sqla_09 and not util.sqla_099) or not util.sqla_079, + "Fails on SQLAlchemy <0.7.9, 0.9.0-0.9.8" + ) def test_render_non_native_enum(self): eq_ignore_whitespace( autogenerate.render._repr_type(