summaryrefslogtreecommitdiff
path: root/alembic/testing
diff options
context:
space:
mode:
authorCaselIT <cfederico87@gmail.com>2020-03-17 23:03:32 +0100
committerMike Bayer <mike_mp@zzzcomputing.com>2020-03-18 16:45:29 -0400
commit4f351a6ca8a6b5fe6718203226805f4e1a02a2db (patch)
tree311a185e5cda1a41dcbb02f4a81ed4ed9c82ad9c /alembic/testing
parent0753306f9c96b23913f24041b3bf2f74d5dc74b1 (diff)
downloadalembic-4f351a6ca8a6b5fe6718203226805f4e1a02a2db.tar.gz
Support sqlalchemy 1.4 exec_driver_sql, text() for strings
Adjusted tests so that only connection-explicit execution is used, along with the use of text() for string invocation. Tests that are testing explicitly for deprecation warnings will bypass SQLAlchemy warnings. Added the RemovedIn20 warning as an error raise for these two specific deprecation cases. Co-authored-by: Mike Bayer <mike_mp@zzzcomputing.com> Change-Id: I4f6b83366329aa95204522c9e99129021d1899fc
Diffstat (limited to 'alembic/testing')
-rw-r--r--alembic/testing/__init__.py1
-rw-r--r--alembic/testing/plugin/plugin_base.py14
-rw-r--r--alembic/testing/requirements.py7
3 files changed, 22 insertions, 0 deletions
diff --git a/alembic/testing/__init__.py b/alembic/testing/__init__.py
index 238f2bd..f009da9 100644
--- a/alembic/testing/__init__.py
+++ b/alembic/testing/__init__.py
@@ -3,6 +3,7 @@ from sqlalchemy.testing import emits_warning # noqa
from sqlalchemy.testing import engines # noqa
from sqlalchemy.testing import mock # noqa
from sqlalchemy.testing import provide_metadata # noqa
+from sqlalchemy.testing import uses_deprecated # noqa
from sqlalchemy.testing.config import requirements as requires # noqa
from alembic import util # noqa
diff --git a/alembic/testing/plugin/plugin_base.py b/alembic/testing/plugin/plugin_base.py
index 276bc56..2d5e95a 100644
--- a/alembic/testing/plugin/plugin_base.py
+++ b/alembic/testing/plugin/plugin_base.py
@@ -40,6 +40,20 @@ def post_begin():
"once", category=pytest.PytestDeprecationWarning
)
+ from sqlalchemy import exc
+
+ if hasattr(exc, "RemovedIn20Warning"):
+ warnings.filterwarnings(
+ "error",
+ category=exc.RemovedIn20Warning,
+ message=".*Engine.execute",
+ )
+ warnings.filterwarnings(
+ "error",
+ category=exc.RemovedIn20Warning,
+ message=".*Passing a string",
+ )
+
# override selected SQLAlchemy pytest hooks with vendored functionality
def stop_test_class(cls):
diff --git a/alembic/testing/requirements.py b/alembic/testing/requirements.py
index 1cb146b..4804646 100644
--- a/alembic/testing/requirements.py
+++ b/alembic/testing/requirements.py
@@ -85,6 +85,13 @@ class SuiteRequirements(Requirements):
)
@property
+ def sqlalchemy_14(self):
+ return exclusions.skip_if(
+ lambda config: not util.sqla_14,
+ "SQLAlchemy 1.4 or greater required",
+ )
+
+ @property
def sqlalchemy_1115(self):
return exclusions.skip_if(
lambda config: not util.sqla_1115,