]> git.ipfire.org Git - thirdparty/sqlalchemy/alembic.git/commitdiff
fix failing test on windows after sqlite switched to queuepool by default
authorCaselIT <cfederico87@gmail.com>
Mon, 28 Feb 2022 23:21:17 +0000 (00:21 +0100)
committerCaselIT <cfederico87@gmail.com>
Wed, 2 Mar 2022 22:14:07 +0000 (23:14 +0100)
Change-Id: Iec2b2ae9c2df9592988fa2239b768d1919eec297

alembic/testing/env.py
setup.cfg
tests/test_command.py
tests/test_script_consumption.py

index 2947085428396bb568a01d77cda8ba3d73790dd5..13d29ff9528160b32f08468c20329eb5ce2c1e13 100644 (file)
@@ -91,10 +91,12 @@ config = context.config
         f.write(txt)
 
 
-def _sqlite_file_db(tempname="foo.db", future=False):
+def _sqlite_file_db(tempname="foo.db", future=False, scope=None, **options):
     dir_ = os.path.join(_get_staging_directory(), "scripts")
     url = "sqlite:///%s/%s" % (dir_, tempname)
-    return testing_util.testing_engine(url=url, future=future)
+    if scope and util.sqla_14:
+        options["scope"] = scope
+    return testing_util.testing_engine(url=url, future=future, options=options)
 
 
 def _sqlite_testing_config(sourceless=False, future=False):
index 0bc276214a36a1bebac6ca047e13d1de1ba040a3..9fe4834645ac08964a4830eaed273754e1a884c2 100644 (file)
--- a/setup.cfg
+++ b/setup.cfg
@@ -122,6 +122,8 @@ oracle8=oracle://scott:tiger@127.0.0.1:1521/?use_ansi=0
 [tool:pytest]
 addopts= --tb native -v -r sfxX -p no:warnings -p no:logging --maxfail=25
 python_files=tests/test_*.py
+markers =
+    backend: tests that should run on all backends; typically dialect-sensitive
 
 [mypy]
 show_error_codes = True
index 680a7fb638303922b772a0b96214727339182624..af507cbd8e4f01c05d62caf582fffe1cfd58e84c 100644 (file)
@@ -87,7 +87,7 @@ try:
         context.run_migrations()
 finally:
     connection.close()
-
+    engine.dispose()
 """
         )
 
@@ -204,7 +204,7 @@ finally:
 class CurrentTest(_BufMixin, TestBase):
     @classmethod
     def setup_class(cls):
-        cls.bind = _sqlite_file_db()
+        cls.bind = _sqlite_file_db(scope="class")
         cls.env = env = staging_env()
         cls.cfg = _sqlite_testing_config()
         cls.a1 = env.generate_revision("a1", "a1")
@@ -309,6 +309,7 @@ try:
         context.run_migrations()
 finally:
     connection.close()
+    engine.dispose()
 
 """
             % (version_table_pk,)
@@ -1192,7 +1193,7 @@ class CommandLineTest(TestBase):
 class EnureVersionTest(TestBase):
     @classmethod
     def setup_class(cls):
-        cls.bind = _sqlite_file_db()
+        cls.bind = _sqlite_file_db(scope="class")
         cls.env = staging_env()
         cls.cfg = _sqlite_testing_config()
 
index 2f9f74818826f8a5279c3dd846da900ded3a097d..d478ae1b3a5413c36ff12f08edf9ac69ef91786d 100644 (file)
@@ -6,6 +6,7 @@ import re
 import textwrap
 
 import sqlalchemy as sa
+from sqlalchemy import pool
 
 from alembic import command
 from alembic import testing
@@ -116,18 +117,9 @@ class PatchEnvironment:
 
 
 @testing.combinations(
-    (
-        False,
-        True,
-    ),
-    (
-        True,
-        False,
-    ),
-    (
-        True,
-        True,
-    ),
+    (False, True),
+    (True, False),
+    (True, True),
     argnames="transactional_ddl,transaction_per_migration",
     id_="rr",
 )
@@ -141,7 +133,9 @@ class ApplyVersionsFunctionalTest(PatchEnvironment, TestBase):
     branched_connection = False
 
     def setUp(self):
-        self.bind = _sqlite_file_db(future=self.future)
+        self.bind = _sqlite_file_db(
+            future=self.future, poolclass=pool.NullPool
+        )
         self.env = staging_env(sourceless=self.sourceless)
         self.cfg = _sqlite_testing_config(
             sourceless=self.sourceless, future=self.future
@@ -802,7 +796,7 @@ class IgnoreFilesTest(TestBase):
     sourceless = False
 
     def setUp(self):
-        self.bind = _sqlite_file_db()
+        self.bind = _sqlite_file_db(poolclass=pool.NullPool)
         self.env = staging_env(sourceless=self.sourceless)
         self.cfg = _sqlite_testing_config(sourceless=self.sourceless)