From: Federico Caselli Date: Fri, 27 Dec 2019 10:23:34 +0000 (+0100) Subject: fix permission error and path on windows X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=36925573aff828bbdd725a4fed5394e06c775a98;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git fix permission error and path on windows --- diff --git a/test/dialect/test_sqlite.py b/test/dialect/test_sqlite.py index ec88277a6c..da349c1f84 100644 --- a/test/dialect/test_sqlite.py +++ b/test/dialect/test_sqlite.py @@ -43,6 +43,7 @@ from sqlalchemy.testing import assert_raises from sqlalchemy.testing import assert_raises_message from sqlalchemy.testing import AssertsCompiledSQL from sqlalchemy.testing import AssertsExecutionResults +from sqlalchemy.testing import combinations from sqlalchemy.testing import engines from sqlalchemy.testing import eq_ from sqlalchemy.testing import expect_warnings @@ -722,40 +723,43 @@ class DialectTest(fixtures.TestBase, AssertsExecutionResults): e = create_engine("sqlite+pysqlite:///foo.db") assert e.pool.__class__ is pool.NullPool - def test_connect_args(self): + @combinations( + ( + "sqlite:///foo.db", # file path is absolute + ([os.path.abspath("foo.db")], {}), + ), + ( + "sqlite:////abs/path/to/foo.db", + ([os.path.abspath("/abs/path/to/foo.db")], {}), + ), + ("sqlite://", ([":memory:"], {})), + ( + "sqlite:///?check_same_thread=true", + ([":memory:"], {"check_same_thread": True}), + ), + ( + "sqlite:///file:path/to/database?" + "check_same_thread=true&timeout=10&mode=ro&nolock=1&uri=true", + ( + ["file:path/to/database?mode=ro&nolock=1"], + {"check_same_thread": True, "timeout": 10.0, "uri": True}, + ), + ), + ( + "sqlite:///file:path/to/database?" "mode=ro&uri=true", + (["file:path/to/database?mode=ro"], {"uri": True}), + ), + ( + "sqlite:///file:path/to/database?uri=true", + (["file:path/to/database"], {"uri": True}), + ), + ) + def test_connect_args(self, url, expected): """test create_connect_args scenarios including support for uri=True""" d = pysqlite_dialect.dialect() - for url, expected in [ - ( - "sqlite:///foo.db", # file path is absolute - ([os.path.abspath("foo.db")], {}), - ), - ("sqlite:////abs/path/to/foo.db", (["/abs/path/to/foo.db"], {})), - ("sqlite://", ([":memory:"], {})), - ( - "sqlite:///?check_same_thread=true", - ([":memory:"], {"check_same_thread": True}), - ), - ( - "sqlite:///file:path/to/database?" - "check_same_thread=true&timeout=10&mode=ro&nolock=1&uri=true", - ( - ["file:path/to/database?mode=ro&nolock=1"], - {"check_same_thread": True, "timeout": 10.0, "uri": True}, - ), - ), - ( - "sqlite:///file:path/to/database?" "mode=ro&uri=true", - (["file:path/to/database?mode=ro"], {"uri": True}), - ), - ( - "sqlite:///file:path/to/database?uri=true", - (["file:path/to/database"], {"uri": True}), - ), - ]: - url = make_url(url) - eq_(d.create_connect_args(url), expected) + url = make_url(url) + eq_(d.create_connect_args(url), expected) @testing.combinations( ("no_persisted", "ignore"), diff --git a/test/ext/test_horizontal_shard.py b/test/ext/test_horizontal_shard.py index e292cb2b08..f78f1ff068 100644 --- a/test/ext/test_horizontal_shard.py +++ b/test/ext/test_horizontal_shard.py @@ -29,6 +29,7 @@ from sqlalchemy.testing import eq_ from sqlalchemy.testing import fixtures from sqlalchemy.testing import provision from sqlalchemy.testing.engines import testing_engine +from sqlalchemy.testing.engines import testing_reaper # TODO: ShardTest can be turned into a base for further subclasses @@ -619,6 +620,8 @@ class LazyLoadIdentityKeyTest(fixtures.DeclarativeMappedTest): def teardown(self): for db in self.dbs: db.connect().invalidate() + + testing_reaper.close_all() for i in range(1, 3): os.remove("shard%d_%s.db" % (i, provision.FOLLOWER_IDENT))