]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Convert dialect modules to relative imports and test
authorMike Bayer <mike_mp@zzzcomputing.com>
Mon, 5 Feb 2018 14:03:08 +0000 (09:03 -0500)
committerMike Bayer <mike_mp@zzzcomputing.com>
Mon, 5 Feb 2018 14:03:08 +0000 (09:03 -0500)
For some reason the dialects were not consistently
converted to relative imports.  Also added a test to
ensure that __all__ is functioning within each dialect.

Change-Id: I8450ed724473be7e17678e9aba7ba0f661fdf134

lib/sqlalchemy/dialects/firebird/__init__.py
lib/sqlalchemy/dialects/mssql/__init__.py
lib/sqlalchemy/dialects/mysql/__init__.py
lib/sqlalchemy/dialects/oracle/__init__.py
lib/sqlalchemy/dialects/postgresql/__init__.py
lib/sqlalchemy/dialects/sqlite/__init__.py
lib/sqlalchemy/dialects/sybase/__init__.py
test/dialect/test_all.py [new file with mode: 0644]

index 286d13e78cc98659d1dc196910c1a58774e9381d..c83db453be4e9feecb949af8f985d91f02dd7060 100644 (file)
@@ -5,14 +5,13 @@
 # This module is part of SQLAlchemy and is released under
 # the MIT License: http://www.opensource.org/licenses/mit-license.php
 
-from sqlalchemy.dialects.firebird import base, kinterbasdb, fdb
-
-base.dialect = fdb.dialect
+from . import base, kinterbasdb, fdb  # noqa
 
 from sqlalchemy.dialects.firebird.base import \
-    SMALLINT, BIGINT, FLOAT, FLOAT, DATE, TIME, \
-    TEXT, NUMERIC, FLOAT, TIMESTAMP, VARCHAR, CHAR, BLOB,\
-    dialect
+    SMALLINT, BIGINT, FLOAT, DATE, TIME, \
+    TEXT, NUMERIC, TIMESTAMP, VARCHAR, CHAR, BLOB
+
+base.dialect = dialect = fdb.dialect
 
 __all__ = (
     'SMALLINT', 'BIGINT', 'FLOAT', 'FLOAT', 'DATE', 'TIME',
index d114f826b1ab9aaed6a337c320dfc19efbe496a0..9c861e89db3a571e8c4ddf9ddf09b7865a996739 100644 (file)
@@ -5,17 +5,16 @@
 # This module is part of SQLAlchemy and is released under
 # the MIT License: http://www.opensource.org/licenses/mit-license.php
 
-from sqlalchemy.dialects.mssql import base, pyodbc, adodbapi, \
-    pymssql, zxjdbc, mxodbc
+from . import base, pyodbc, adodbapi, pymssql, zxjdbc, mxodbc  # noqa
 
-base.dialect = pyodbc.dialect
-
-from sqlalchemy.dialects.mssql.base import \
+from .base import \
     INTEGER, BIGINT, SMALLINT, TINYINT, VARCHAR, NVARCHAR, CHAR, \
     NCHAR, TEXT, NTEXT, DECIMAL, NUMERIC, FLOAT, DATETIME,\
     DATETIME2, DATETIMEOFFSET, DATE, TIME, SMALLDATETIME, \
     BINARY, VARBINARY, BIT, REAL, IMAGE, TIMESTAMP, ROWVERSION, \
-    MONEY, SMALLMONEY, UNIQUEIDENTIFIER, SQL_VARIANT, XML, dialect
+    MONEY, SMALLMONEY, UNIQUEIDENTIFIER, SQL_VARIANT, XML
+
+base.dialect = dialect = pyodbc.dialect
 
 
 __all__ = (
index a17edd41b3566bc823152f24b8df077919c08650..de4e1fa41d1ac9dc2a92789e7a758f3c0b18f966 100644 (file)
@@ -6,12 +6,9 @@
 # the MIT License: http://www.opensource.org/licenses/mit-license.php
 
 from . import base, mysqldb, oursql, \
-    pyodbc, zxjdbc, mysqlconnector, pymysql,\
+    pyodbc, zxjdbc, mysqlconnector, pymysql, \
     gaerdbms, cymysql
 
-# default dialect
-base.dialect = mysqldb.dialect
-
 from .base import \
     BIGINT, BINARY, BIT, BLOB, BOOLEAN, CHAR, DATE, DATETIME, \
     DECIMAL, DOUBLE, ENUM, DECIMAL,\
@@ -19,10 +16,14 @@ from .base import \
     MEDIUMINT, MEDIUMTEXT, NCHAR, \
     NVARCHAR, NUMERIC, SET, SMALLINT, REAL, TEXT, TIME, TIMESTAMP, \
     TINYBLOB, TINYINT, TINYTEXT,\
-    VARBINARY, VARCHAR, YEAR, dialect
+    VARBINARY, VARCHAR, YEAR
 
 from .dml import insert, Insert
 
+# default dialect
+base.dialect = dialect = mysqldb.dialect
+
+
 __all__ = (
     'BIGINT', 'BINARY', 'BIT', 'BLOB', 'BOOLEAN', 'CHAR', 'DATE', 'DATETIME',
     'DECIMAL', 'DOUBLE', 'ENUM', 'DECIMAL', 'FLOAT', 'INTEGER', 'INTEGER',
index d3e60a43c0e73e92c9e762e6fb84be79fa94fb89..e3d9fed2cc6f6b1a560de312b85f366689cd34eb 100644 (file)
@@ -5,16 +5,15 @@
 # This module is part of SQLAlchemy and is released under
 # the MIT License: http://www.opensource.org/licenses/mit-license.php
 
-from sqlalchemy.dialects.oracle import base, cx_oracle, zxjdbc
+from . import base, cx_oracle, zxjdbc  # noqa
 
-base.dialect = cx_oracle.dialect
-
-from sqlalchemy.dialects.oracle.base import \
+from .base import \
     VARCHAR, NVARCHAR, CHAR, DATE, NUMBER,\
-    BLOB, BFILE, CLOB, NCLOB, TIMESTAMP, RAW,\
-    FLOAT, DOUBLE_PRECISION, LONG, dialect, INTERVAL,\
-    VARCHAR2, NVARCHAR2, ROWID, dialect
+    BLOB, BFILE, BINARY_FLOAT, BINARY_DOUBLE, CLOB, NCLOB, TIMESTAMP, RAW,\
+    FLOAT, DOUBLE_PRECISION, LONG, INTERVAL,\
+    VARCHAR2, NVARCHAR2, ROWID
 
+base.dialect = dialect = cx_oracle.dialect
 
 __all__ = (
     'VARCHAR', 'NVARCHAR', 'CHAR', 'DATE', 'NUMBER',
index 7e7085807bffb2b747434ed49dca43863fdfe3be..a985f06a9122a2ff2b41b57eb2ac10aa52b4ede0 100644 (file)
@@ -6,17 +6,15 @@
 # the MIT License: http://www.opensource.org/licenses/mit-license.php
 
 from . import base, psycopg2, pg8000, pypostgresql, pygresql, \
-    zxjdbc, psycopg2cffi
-
-base.dialect = psycopg2.dialect
+    zxjdbc, psycopg2cffi  # noqa
 
 from .base import \
     INTEGER, BIGINT, SMALLINT, VARCHAR, CHAR, TEXT, NUMERIC, FLOAT, REAL, \
-    INET, CIDR, UUID, BIT, MACADDR, MONEY, OID, DOUBLE_PRECISION, TIMESTAMP, TIME, \
-    DATE, BYTEA, BOOLEAN, INTERVAL, ENUM, dialect, TSVECTOR, DropEnumType, \
-    CreateEnumType
+    INET, CIDR, UUID, BIT, MACADDR, MONEY, OID, DOUBLE_PRECISION, \
+    TIMESTAMP, TIME, DATE, BYTEA, BOOLEAN, INTERVAL, ENUM, TSVECTOR, \
+    DropEnumType, CreateEnumType
 from .hstore import HSTORE, hstore
-from .json import JSON, JSONB
+from .json import JSON, JSONB, json
 from .array import array, ARRAY, Any, All
 from .ext import aggregate_order_by, ExcludeConstraint, array_agg
 from .dml import insert, Insert
@@ -24,6 +22,9 @@ from .dml import insert, Insert
 from .ranges import INT4RANGE, INT8RANGE, NUMRANGE, DATERANGE, TSRANGE, \
     TSTZRANGE
 
+base.dialect = dialect = psycopg2.dialect
+
+
 __all__ = (
     'INTEGER', 'BIGINT', 'SMALLINT', 'VARCHAR', 'CHAR', 'TEXT', 'NUMERIC',
     'FLOAT', 'REAL', 'INET', 'CIDR', 'UUID', 'BIT', 'MACADDR', 'MONEY', 'OID',
index 6161ff6b722f33050c5e93ace298b139c90c9c7d..cb5337adb9fb6cedbefea13fdbf5d1b0df106fd8 100644 (file)
@@ -5,16 +5,17 @@
 # This module is part of SQLAlchemy and is released under
 # the MIT License: http://www.opensource.org/licenses/mit-license.php
 
-from sqlalchemy.dialects.sqlite import base, pysqlite, pysqlcipher
-
-# default dialect
-base.dialect = pysqlite.dialect
+from . import base, pysqlite, pysqlcipher  # noqa
 
 from sqlalchemy.dialects.sqlite.base import (
     BLOB, BOOLEAN, CHAR, DATE, DATETIME, DECIMAL, FLOAT, INTEGER, REAL,
-    NUMERIC, SMALLINT, TEXT, TIME, TIMESTAMP, VARCHAR, dialect,
+    NUMERIC, SMALLINT, TEXT, TIME, TIMESTAMP, VARCHAR
 )
 
+# default dialect
+base.dialect = dialect = pysqlite.dialect
+
+
 __all__ = ('BLOB', 'BOOLEAN', 'CHAR', 'DATE', 'DATETIME', 'DECIMAL',
            'FLOAT', 'INTEGER', 'NUMERIC', 'SMALLINT', 'TEXT', 'TIME',
            'TIMESTAMP', 'VARCHAR', 'REAL', 'dialect')
index f7f06e5aa4b11322fd04d46818fbcadbc4da5199..be434977faeac61d1aa95e4c2201facf8ff21261 100644 (file)
@@ -5,17 +5,16 @@
 # This module is part of SQLAlchemy and is released under
 # the MIT License: http://www.opensource.org/licenses/mit-license.php
 
-from sqlalchemy.dialects.sybase import base, pysybase, pyodbc
-
-# default dialect
-base.dialect = pyodbc.dialect
+from . import base, pysybase, pyodbc  # noqa
 
 from .base import CHAR, VARCHAR, TIME, NCHAR, NVARCHAR,\
     TEXT, DATE, DATETIME, FLOAT, NUMERIC,\
     BIGINT, INT, INTEGER, SMALLINT, BINARY,\
     VARBINARY, UNITEXT, UNICHAR, UNIVARCHAR,\
-    IMAGE, BIT, MONEY, SMALLMONEY, TINYINT,\
-    dialect
+    IMAGE, BIT, MONEY, SMALLMONEY, TINYINT
+
+# default dialect
+base.dialect = dialect = pyodbc.dialect
 
 
 __all__ = (
diff --git a/test/dialect/test_all.py b/test/dialect/test_all.py
new file mode 100644 (file)
index 0000000..3e028e8
--- /dev/null
@@ -0,0 +1,18 @@
+from sqlalchemy.testing import fixtures
+from sqlalchemy.testing import is_not_
+from sqlalchemy import dialects
+
+
+class ImportStarTest(fixtures.TestBase):
+
+    def _all_dialect_packages(self):
+        return [
+            getattr(__import__("sqlalchemy.dialects.%s" % d).dialects, d)
+            for d in dialects.__all__
+            if not d.startswith('_')
+        ]
+
+    def test_all_import(self):
+        for package in self._all_dialect_packages():
+            for item_name in package.__all__:
+                is_not_(None, getattr(package, item_name))