diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-03-19 15:51:11 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-03-19 15:51:11 -0400 |
commit | 4c2f825086d8f016dd824da7bbe6af20a0eeb67c (patch) | |
tree | 88539641e9c4afcab138f93531714637faa6f39b | |
parent | 3b516aecde0166f28db34cff116b0a8dadb0b5db (diff) | |
download | alembic-4c2f825086d8f016dd824da7bbe6af20a0eeb67c.tar.gz |
- changelog for #266
- use exception fixture
- look directly at context.as_sql as that's where
the "sql mode" is most authoritative
- fixes #266
-rw-r--r-- | alembic/autogenerate/api.py | 6 | ||||
-rw-r--r-- | docs/build/changelog.rst | 10 | ||||
-rw-r--r-- | tests/test_autogenerate.py | 13 |
3 files changed, 21 insertions, 8 deletions
diff --git a/alembic/autogenerate/api.py b/alembic/autogenerate/api.py index 18a44a8..6281a6c 100644 --- a/alembic/autogenerate/api.py +++ b/alembic/autogenerate/api.py @@ -106,14 +106,16 @@ def compare_metadata(context, metadata): instance. """ + + autogen_context, connection = _autogen_context(context, None) + # as_sql=True is nonsensical here. autogenerate requires a connection # it can use to run queries against to get the database schema. - if context.opts.get('as_sql', False) is True: + if context.as_sql: raise util.CommandError( "autogenerate can't use as_sql=True as it prevents querying " "the database for schema information") - autogen_context, connection = _autogen_context(context, None) diffs = [] object_filters = _get_object_filters(context.opts) diff --git a/docs/build/changelog.rst b/docs/build/changelog.rst index d7e239e..504b73d 100644 --- a/docs/build/changelog.rst +++ b/docs/build/changelog.rst @@ -7,6 +7,16 @@ Changelog :version: 0.7.5 .. change:: + :tags: bug, autogenerate + :tickets: 266 + :pullreq: bitbucket:39 + + The ``--autogenerate`` option is not valid when used in conjunction + with "offline" mode, e.g. ``--sql``. This now raises a ``CommandError``, + rather than failing more deeply later on. Pull request courtesy + Johannes Erdfelt. + + .. change:: :tags: bug, operations, mssql :tickets: 284 diff --git a/tests/test_autogenerate.py b/tests/test_autogenerate.py index 1eeeb91..e9ffe8b 100644 --- a/tests/test_autogenerate.py +++ b/tests/test_autogenerate.py @@ -11,6 +11,7 @@ from alembic import autogenerate from alembic.migration import MigrationContext from alembic.testing import TestBase from alembic.testing import config +from alembic.testing import assert_raises_message from alembic.testing.mock import Mock from alembic.testing.env import staging_env, clear_staging_env from alembic.testing import eq_ @@ -1358,12 +1359,12 @@ class CompareMetadataTest(ModelOne, AutogenTest, TestBase): ) metadata = self.m2 - try: - autogenerate.compare_metadata(context, metadata) - except CommandError: - pass - else: - assert False, "unexpected success" + assert_raises_message( + CommandError, + "autogenerate can't use as_sql=True as it prevents " + "querying the database for schema information", + autogenerate.compare_metadata, context, metadata + ) class PGCompareMetaData(ModelOne, AutogenTest, TestBase): |