summaryrefslogtreecommitdiff
path: root/test/engine/test_parseconnect.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/engine/test_parseconnect.py')
-rw-r--r--test/engine/test_parseconnect.py39
1 files changed, 39 insertions, 0 deletions
diff --git a/test/engine/test_parseconnect.py b/test/engine/test_parseconnect.py
index 032639557..dcb149be8 100644
--- a/test/engine/test_parseconnect.py
+++ b/test/engine/test_parseconnect.py
@@ -4,6 +4,7 @@ import StringIO
import sqlalchemy.engine.url as url
from sqlalchemy import create_engine, engine_from_config, exc, pool
from sqlalchemy.engine import _coerce_config
+from sqlalchemy.engine.default import DefaultDialect
import sqlalchemy as tsa
from test.lib import fixtures, testing
@@ -315,6 +316,44 @@ pool_timeout=10
_initialize=False,
)
+class TestRegNewDBAPI(fixtures.TestBase):
+ def test_register_base(self):
+ from sqlalchemy.dialects import registry
+ registry.register("mockdialect", __name__, "MockDialect")
+
+ e = create_engine("mockdialect://")
+ assert isinstance(e.dialect, MockDialect)
+
+ def test_register_dotted(self):
+ from sqlalchemy.dialects import registry
+ registry.register("mockdialect.foob", __name__, "MockDialect")
+
+ e = create_engine("mockdialect+foob://")
+ assert isinstance(e.dialect, MockDialect)
+
+ def test_register_legacy(self):
+ from sqlalchemy.dialects import registry
+ tokens = __name__.split(".")
+
+ global dialect
+ dialect = MockDialect
+ registry.register("mockdialect.foob", ".".join(tokens[0:-1]), tokens[-1])
+
+ e = create_engine("mockdialect+foob://")
+ assert isinstance(e.dialect, MockDialect)
+
+ def test_register_per_dbapi(self):
+ from sqlalchemy.dialects import registry
+ registry.register("mysql.my_mock_dialect", __name__, "MockDialect")
+
+ e = create_engine("mysql+my_mock_dialect://")
+ assert isinstance(e.dialect, MockDialect)
+
+class MockDialect(DefaultDialect):
+ @classmethod
+ def dbapi(cls, **kw):
+ return MockDBAPI()
+
class MockDBAPI(object):
version_info = sqlite_version_info = 99, 9, 9
sqlite_version = '99.9.9'