summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/testing
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/testing')
-rw-r--r--lib/sqlalchemy/testing/assertions.py24
-rw-r--r--lib/sqlalchemy/testing/fixtures.py12
-rw-r--r--lib/sqlalchemy/testing/plugin/noseplugin.py10
-rw-r--r--lib/sqlalchemy/testing/warnings.py4
4 files changed, 29 insertions, 21 deletions
diff --git a/lib/sqlalchemy/testing/assertions.py b/lib/sqlalchemy/testing/assertions.py
index e01948f9c..c04153961 100644
--- a/lib/sqlalchemy/testing/assertions.py
+++ b/lib/sqlalchemy/testing/assertions.py
@@ -1,4 +1,4 @@
-
+from __future__ import absolute_import
from . import util as testutil
from sqlalchemy import pool, orm, util
@@ -63,7 +63,7 @@ def emits_warning_on(db, *warnings):
@decorator
def decorate(fn, *args, **kw):
- if isinstance(db, str):
+ if isinstance(db, util.string_types):
if not spec(config.db):
return fn(*args, **kw)
else:
@@ -172,8 +172,8 @@ def assert_raises_message(except_cls, msg, callable_, *args, **kwargs):
callable_(*args, **kwargs)
assert False, "Callable did not raise an exception"
except except_cls as e:
- assert re.search(msg, str(e), re.UNICODE), "%r !~ %s" % (msg, e)
- print(str(e).encode('utf-8'))
+ assert re.search(msg, util.text_type(e), re.UNICODE), "%r !~ %s" % (msg, e)
+ print(util.text_type(e).encode('utf-8'))
class AssertsCompiledSQL(object):
@@ -190,12 +190,12 @@ class AssertsCompiledSQL(object):
dialect = default.DefaultDialect()
elif dialect is None:
dialect = config.db.dialect
- elif isinstance(dialect, str):
+ elif isinstance(dialect, util.string_types):
dialect = create_engine("%s://" % dialect).dialect
kw = {}
if params is not None:
- kw['column_keys'] = list(params.keys())
+ kw['column_keys'] = list(params)
if isinstance(clause, orm.Query):
context = clause._compile_context()
@@ -205,13 +205,13 @@ class AssertsCompiledSQL(object):
c = clause.compile(dialect=dialect, **kw)
param_str = repr(getattr(c, 'params', {}))
-# start Py3K
- param_str = param_str.encode('utf-8').decode('ascii', 'ignore')
-# end Py3K
- print("\nSQL String:\n" + str(c) + param_str)
+ if util.py3k:
+ param_str = param_str.encode('utf-8').decode('ascii', 'ignore')
+
+ print("\nSQL String:\n" + util.text_type(c) + param_str)
- cc = re.sub(r'[\n\t]', '', str(c))
+ cc = re.sub(r'[\n\t]', '', util.text_type(c))
eq_(cc, result, "%r != %r on dialect %r" % (cc, result, dialect))
@@ -301,7 +301,7 @@ class AssertsExecutionResults(object):
found = util.IdentitySet(result)
expected = set([immutabledict(e) for e in expected])
- for wrong in itertools.filterfalse(lambda o: type(o) == cls, found):
+ for wrong in util.itertools_filterfalse(lambda o: type(o) == cls, found):
fail('Unexpected type "%s", expected "%s"' % (
type(wrong).__name__, cls.__name__))
diff --git a/lib/sqlalchemy/testing/fixtures.py b/lib/sqlalchemy/testing/fixtures.py
index 08b2361f2..daa779ae3 100644
--- a/lib/sqlalchemy/testing/fixtures.py
+++ b/lib/sqlalchemy/testing/fixtures.py
@@ -1,6 +1,7 @@
from . import config
from . import assertions, schema
from .util import adict
+from .. import util
from .engines import drop_all_tables
from .entities import BasicEntity, ComparableEntity
import sys
@@ -126,8 +127,9 @@ class TablesTest(TestBase):
try:
table.delete().execute().close()
except sa.exc.DBAPIError as ex:
- print("Error emptying table %s: %r" % (
- table, ex), file=sys.stderr)
+ util.print_(
+ ("Error emptying table %s: %r" % (table, ex)),
+ file=sys.stderr)
def setup(self):
self._setup_each_tables()
@@ -190,7 +192,7 @@ class TablesTest(TestBase):
for table, data in cls.fixtures().items():
if len(data) < 2:
continue
- if isinstance(table, str):
+ if isinstance(table, util.string_types):
table = cls.tables[table]
headers[table] = data[0]
rows[table] = data[1:]
@@ -199,7 +201,7 @@ class TablesTest(TestBase):
continue
cls.bind.execute(
table.insert(),
- [dict(list(zip(headers[table], column_values)))
+ [dict(zip(headers[table], column_values))
for column_values in rows[table]])
@@ -284,7 +286,7 @@ class MappedTest(_ORMTest, TablesTest, assertions.AssertsExecutionResults):
cls_registry[classname] = cls
return type.__init__(cls, classname, bases, dict_)
- class _Base(object, metaclass=FindFixture):
+ class _Base(util.with_metaclass(FindFixture, object)):
pass
class Basic(BasicEntity, _Base):
diff --git a/lib/sqlalchemy/testing/plugin/noseplugin.py b/lib/sqlalchemy/testing/plugin/noseplugin.py
index 7ad61c7b9..b3cd3a4e3 100644
--- a/lib/sqlalchemy/testing/plugin/noseplugin.py
+++ b/lib/sqlalchemy/testing/plugin/noseplugin.py
@@ -10,13 +10,19 @@ normally as "from sqlalchemy.testing.plugin import noseplugin".
"""
+from __future__ import absolute_import
import os
-import configparser
+import sys
+py3k = sys.version_info >= (3, 0)
+
+if py3k:
+ import configparser
+else:
+ import ConfigParser as configparser
from nose.plugins import Plugin
from nose import SkipTest
-import time
import sys
import re
diff --git a/lib/sqlalchemy/testing/warnings.py b/lib/sqlalchemy/testing/warnings.py
index 9546945eb..6193acd88 100644
--- a/lib/sqlalchemy/testing/warnings.py
+++ b/lib/sqlalchemy/testing/warnings.py
@@ -1,4 +1,4 @@
-
+from __future__ import absolute_import
import warnings
from .. import exc as sa_exc
@@ -10,7 +10,7 @@ def testing_warn(msg, stacklevel=3):
filename = "sqlalchemy.testing.warnings"
lineno = 1
- if isinstance(msg, str):
+ if isinstance(msg, util.string_types):
warnings.warn_explicit(msg, sa_exc.SAWarning, filename, lineno)
else:
warnings.warn_explicit(msg, filename, lineno)