summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/sqlalchemy/testing/__init__.py (renamed from test/lib/testing.py)8
-rw-r--r--lib/sqlalchemy/testing/assertions.py (renamed from test/lib/assertions.py)2
-rw-r--r--lib/sqlalchemy/testing/assertsql.py (renamed from test/lib/assertsql.py)0
-rw-r--r--lib/sqlalchemy/testing/config.py3
-rw-r--r--lib/sqlalchemy/testing/engines.py (renamed from test/lib/engines.py)10
-rw-r--r--lib/sqlalchemy/testing/entities.py (renamed from test/lib/entities.py)0
-rw-r--r--lib/sqlalchemy/testing/exclusions.py (renamed from test/lib/exclusions.py)16
-rw-r--r--lib/sqlalchemy/testing/fixtures.py (renamed from test/lib/fixtures.py)2
-rw-r--r--lib/sqlalchemy/testing/pickleable.py (renamed from test/lib/pickleable.py)0
-rw-r--r--lib/sqlalchemy/testing/plugin/__init__.py (renamed from test/bootstrap/__init__.py)0
-rw-r--r--lib/sqlalchemy/testing/plugin/config.py (renamed from test/bootstrap/config.py)32
-rw-r--r--lib/sqlalchemy/testing/plugin/noseplugin.py (renamed from test/bootstrap/noseplugin.py)25
-rw-r--r--lib/sqlalchemy/testing/profiling.py (renamed from test/lib/profiling.py)7
-rw-r--r--lib/sqlalchemy/testing/requirements.py38
-rw-r--r--lib/sqlalchemy/testing/schema.py (renamed from test/lib/schema.py)2
-rw-r--r--lib/sqlalchemy/testing/suite/__init__.py0
-rw-r--r--lib/sqlalchemy/testing/suite/requirements.py24
-rw-r--r--lib/sqlalchemy/testing/suite/test_ddl.py48
-rw-r--r--lib/sqlalchemy/testing/suite/test_reflection.py0
-rw-r--r--lib/sqlalchemy/testing/suite/test_sequencing.py36
-rw-r--r--lib/sqlalchemy/testing/util.py (renamed from test/lib/util.py)4
-rw-r--r--lib/sqlalchemy/testing/warnings.py (renamed from test/lib/warnings.py)2
-rw-r--r--setup.cfg6
-rwxr-xr-xsqla_nose.py5
-rw-r--r--test/aaa_profiling/test_compiler.py2
-rw-r--r--test/aaa_profiling/test_memusage.py11
-rw-r--r--test/aaa_profiling/test_orm.py9
-rw-r--r--test/aaa_profiling/test_pool.py2
-rw-r--r--test/aaa_profiling/test_resultset.py4
-rw-r--r--test/aaa_profiling/test_zoomark.py2
-rw-r--r--test/aaa_profiling/test_zoomark_orm.py2
-rw-r--r--test/base/test_dependency.py6
-rw-r--r--test/base/test_events.py4
-rw-r--r--test/base/test_except.py4
-rw-r--r--test/base/test_inspect.py4
-rw-r--r--test/base/test_utils.py8
-rw-r--r--test/dialect/test_access.py2
-rw-r--r--test/dialect/test_firebird.py7
-rw-r--r--test/dialect/test_informix.py2
-rw-r--r--test/dialect/test_maxdb.py4
-rw-r--r--test/dialect/test_mssql.py8
-rw-r--r--test/dialect/test_mxodbc.py6
-rw-r--r--test/dialect/test_mysql.py9
-rw-r--r--test/dialect/test_oracle.py8
-rw-r--r--test/dialect/test_postgresql.py21
-rw-r--r--test/dialect/test_pyodbc.py4
-rw-r--r--test/dialect/test_sqlite.py4
-rw-r--r--test/dialect/test_suite.py8
-rw-r--r--test/dialect/test_sybase.py2
-rw-r--r--test/engine/test_bind.py10
-rw-r--r--test/engine/test_ddlevents.py17
-rw-r--r--test/engine/test_execute.py13
-rw-r--r--test/engine/test_parseconnect.py5
-rw-r--r--test/engine/test_pool.py10
-rw-r--r--test/engine/test_processors.py4
-rw-r--r--test/engine/test_reconnect.py13
-rw-r--r--test/engine/test_reflection.py9
-rw-r--r--test/engine/test_transaction.py12
-rw-r--r--test/ex/test_examples.py2
-rw-r--r--test/ext/declarative/test_basic.py12
-rw-r--r--test/ext/declarative/test_clsregistry.py6
-rw-r--r--test/ext/declarative/test_inheritance.py10
-rw-r--r--test/ext/declarative/test_mixin.py8
-rw-r--r--test/ext/declarative/test_reflection.py8
-rw-r--r--test/ext/test_associationproxy.py12
-rw-r--r--test/ext/test_compiler.py4
-rw-r--r--test/ext/test_extendedattr.py8
-rw-r--r--test/ext/test_horizontal_shard.py7
-rw-r--r--test/ext/test_hybrid.py6
-rw-r--r--test/ext/test_mutable.py10
-rw-r--r--test/ext/test_orderinglist.py9
-rw-r--r--test/ext/test_serializer.py10
-rw-r--r--test/lib/__init__.py22
-rw-r--r--test/orm/_fixtures.py6
-rw-r--r--test/orm/inheritance/_poly_fixtures.py6
-rw-r--r--test/orm/inheritance/test_abc_inheritance.py6
-rw-r--r--test/orm/inheritance/test_abc_polymorphic.py8
-rw-r--r--test/orm/inheritance/test_assorted_poly.py12
-rw-r--r--test/orm/inheritance/test_basic.py13
-rw-r--r--test/orm/inheritance/test_concrete.py12
-rw-r--r--test/orm/inheritance/test_magazine.py8
-rw-r--r--test/orm/inheritance/test_manytomany.py6
-rw-r--r--test/orm/inheritance/test_poly_linked_list.py6
-rw-r--r--test/orm/inheritance/test_poly_persistence.py8
-rw-r--r--test/orm/inheritance/test_polymorphic_rel.py4
-rw-r--r--test/orm/inheritance/test_productspec.py6
-rw-r--r--test/orm/inheritance/test_relationship.py6
-rw-r--r--test/orm/inheritance/test_selects.py4
-rw-r--r--test/orm/inheritance/test_single.py8
-rw-r--r--test/orm/inheritance/test_with_poly.py6
-rw-r--r--test/orm/test_association.py8
-rw-r--r--test/orm/test_assorted_eager.py8
-rw-r--r--test/orm/test_attributes.py8
-rw-r--r--test/orm/test_backref_mutations.py12
-rw-r--r--test/orm/test_bind.py10
-rw-r--r--test/orm/test_cascade.py10
-rw-r--r--test/orm/test_collection.py12
-rw-r--r--test/orm/test_compile.py6
-rw-r--r--test/orm/test_composites.py10
-rw-r--r--test/orm/test_cycles.py10
-rw-r--r--test/orm/test_default_strategies.py4
-rw-r--r--test/orm/test_defaults.py9
-rw-r--r--test/orm/test_deprecations.py8
-rw-r--r--test/orm/test_descriptor.py4
-rw-r--r--test/orm/test_dynamic.py10
-rw-r--r--test/orm/test_eager_relations.py12
-rw-r--r--test/orm/test_evaluator.py10
-rw-r--r--test/orm/test_events.py10
-rw-r--r--test/orm/test_expire.py12
-rw-r--r--test/orm/test_froms.py9
-rw-r--r--test/orm/test_generative.py12
-rw-r--r--test/orm/test_hasparent.py12
-rw-r--r--test/orm/test_immediate_load.py4
-rw-r--r--test/orm/test_inspect.py4
-rw-r--r--test/orm/test_instrumentation.py10
-rw-r--r--test/orm/test_joins.py10
-rw-r--r--test/orm/test_lazy_relations.py12
-rw-r--r--test/orm/test_load_on_fks.py8
-rw-r--r--test/orm/test_lockmode.py4
-rw-r--r--test/orm/test_manytomany.py10
-rw-r--r--test/orm/test_mapper.py12
-rw-r--r--test/orm/test_merge.py10
-rw-r--r--test/orm/test_naturalpks.py12
-rw-r--r--test/orm/test_of_type.py9
-rw-r--r--test/orm/test_onetoone.py6
-rw-r--r--test/orm/test_pickled.py16
-rw-r--r--test/orm/test_query.py13
-rw-r--r--test/orm/test_rel_fn.py4
-rw-r--r--test/orm/test_relationships.py10
-rw-r--r--test/orm/test_scoping.py10
-rw-r--r--test/orm/test_selectable.py10
-rw-r--r--test/orm/test_session.py14
-rw-r--r--test/orm/test_subquery_relations.py12
-rw-r--r--test/orm/test_sync.py8
-rw-r--r--test/orm/test_transaction.py10
-rw-r--r--test/orm/test_unitofwork.py18
-rw-r--r--test/orm/test_unitofworkv2.py11
-rw-r--r--test/orm/test_update_delete.py6
-rw-r--r--test/orm/test_utils.py8
-rw-r--r--test/orm/test_versioning.py10
-rw-r--r--test/perf/insertspeed.py2
-rw-r--r--test/perf/large_flush.py2
-rw-r--r--test/perf/objselectspeed.py4
-rw-r--r--test/perf/objupdatespeed.py4
-rw-r--r--test/perf/ormsession.py4
-rw-r--r--test/perf/sessions.py4
-rw-r--r--test/profiles.txt (renamed from test/lib/profiles.txt)0
-rw-r--r--test/requirements.py (renamed from test/lib/requires.py)18
-rw-r--r--test/sql/test_case_statement.py5
-rw-r--r--test/sql/test_compiler.py5
-rw-r--r--test/sql/test_constraints.py11
-rw-r--r--test/sql/test_cte.py4
-rw-r--r--test/sql/test_defaults.py11
-rw-r--r--test/sql/test_functions.py7
-rw-r--r--test/sql/test_generative.py9
-rw-r--r--test/sql/test_inspect.py4
-rw-r--r--test/sql/test_labels.py9
-rw-r--r--test/sql/test_metadata.py16
-rw-r--r--test/sql/test_operators.py5
-rw-r--r--test/sql/test_query.py10
-rw-r--r--test/sql/test_quote.py3
-rw-r--r--test/sql/test_returning.py8
-rw-r--r--test/sql/test_rowcount.py3
-rw-r--r--test/sql/test_selectable.py8
-rw-r--r--test/sql/test_type_expressions.py6
-rw-r--r--test/sql/test_types.py16
-rw-r--r--test/sql/test_unicode.py7
-rw-r--r--test/sql/test_update.py7
168 files changed, 807 insertions, 627 deletions
diff --git a/test/lib/testing.py b/lib/sqlalchemy/testing/__init__.py
index f244dfecc..415705e93 100644
--- a/test/lib/testing.py
+++ b/lib/sqlalchemy/testing/__init__.py
@@ -2,9 +2,7 @@ from __future__ import absolute_import
from .warnings import testing_warn, assert_warnings, resetwarnings
-from ..bootstrap import config
-from . import assertsql, util as testutil
-from sqlalchemy.util import decorator
+from . import config
from .exclusions import db_spec, _is_excluded, fails_if, skip_if, future,\
fails_on, fails_on_everything_except, skip, only_on, exclude, against,\
@@ -18,8 +16,6 @@ from .util import run_as_contextmanager, rowset, fail, provide_metadata, adict
crashes = skip
-# various sugar installed by config.py
-db = None
-requires = None
+from .config import db, requirements as requires
diff --git a/test/lib/assertions.py b/lib/sqlalchemy/testing/assertions.py
index 70284799c..1e8559c1a 100644
--- a/test/lib/assertions.py
+++ b/lib/sqlalchemy/testing/assertions.py
@@ -11,7 +11,7 @@ import re
from .warnings import resetwarnings
from .exclusions import db_spec, _is_excluded
from . import assertsql
-from ..bootstrap import config
+from . import config
import itertools
from .util import fail
diff --git a/test/lib/assertsql.py b/lib/sqlalchemy/testing/assertsql.py
index 897f4b3b1..897f4b3b1 100644
--- a/test/lib/assertsql.py
+++ b/lib/sqlalchemy/testing/assertsql.py
diff --git a/lib/sqlalchemy/testing/config.py b/lib/sqlalchemy/testing/config.py
new file mode 100644
index 000000000..2945bd456
--- /dev/null
+++ b/lib/sqlalchemy/testing/config.py
@@ -0,0 +1,3 @@
+requirements = None
+db = None
+
diff --git a/test/lib/engines.py b/lib/sqlalchemy/testing/engines.py
index 1431d5a86..f7401550e 100644
--- a/test/lib/engines.py
+++ b/lib/sqlalchemy/testing/engines.py
@@ -3,7 +3,7 @@ from __future__ import absolute_import
import types
import weakref
from collections import deque
-from ..bootstrap import config
+from . import config
from .util import decorator
from sqlalchemy import event, pool
import re
@@ -60,13 +60,12 @@ class ConnectionKiller(object):
self._stop_test_ctx_aggressive()
def _stop_test_ctx_minimal(self):
- from test.lib import testing
self.close_all()
self.conns = set()
for rec in self.testing_engines.keys():
- if rec is not testing.db:
+ if rec is not config.db:
rec.dispose()
def _stop_test_ctx_aggressive(self):
@@ -185,7 +184,7 @@ def testing_engine(url=None, options=None):
"""Produce an engine configured by --options with optional overrides."""
from sqlalchemy import create_engine
- from test.lib.assertsql import asserter
+ from .assertsql import asserter
if not options:
use_reaper = True
@@ -193,7 +192,8 @@ def testing_engine(url=None, options=None):
use_reaper = options.pop('use_reaper', True)
url = url or config.db_url
- options = options or config.db_opts
+ if options is None:
+ options = config.db_opts
engine = create_engine(url, **options)
if isinstance(engine.pool, pool.QueuePool):
diff --git a/test/lib/entities.py b/lib/sqlalchemy/testing/entities.py
index 1b24e73b7..1b24e73b7 100644
--- a/test/lib/entities.py
+++ b/lib/sqlalchemy/testing/entities.py
diff --git a/test/lib/exclusions.py b/lib/sqlalchemy/testing/exclusions.py
index b3f5e0f73..ba2eebe4f 100644
--- a/test/lib/exclusions.py
+++ b/lib/sqlalchemy/testing/exclusions.py
@@ -1,7 +1,7 @@
import operator
from nose import SkipTest
from sqlalchemy.util import decorator
-from ..bootstrap import config
+from . import config
from sqlalchemy import util
@@ -104,7 +104,7 @@ class SpecPredicate(Predicate):
if self.op is not None:
assert driver is None, "DBAPI version specs not supported yet"
- version = _server_version()
+ version = _server_version(engine)
oper = hasattr(self.op, '__call__') and self.op \
or self._ops[self.op]
return oper(version, self.spec)
@@ -218,15 +218,12 @@ _as_predicate = Predicate.as_predicate
def _is_excluded(db, op, spec):
return SpecPredicate(db, op, spec)()
-def _server_version(bind=None):
+def _server_version(engine):
"""Return a server_version_info tuple."""
- if bind is None:
- bind = config.db
-
# force metadata to be retrieved
- conn = bind.connect()
- version = getattr(bind.dialect, 'server_version_info', ())
+ conn = engine.connect()
+ version = getattr(engine.dialect, 'server_version_info', ())
conn.close()
return version
@@ -235,6 +232,9 @@ def db_spec(*dbs):
Predicate.as_predicate(db) for db in dbs
)
+def open(fn):
+ return fn
+
@decorator
def future(fn, *args, **kw):
return fails_if(LambdaPredicate(fn, *args, **kw), "Future feature")
diff --git a/test/lib/fixtures.py b/lib/sqlalchemy/testing/fixtures.py
index 722b64cfc..018276d4d 100644
--- a/test/lib/fixtures.py
+++ b/lib/sqlalchemy/testing/fixtures.py
@@ -1,4 +1,4 @@
-from ..bootstrap import config
+from . import config
from . import assertions, schema
from .util import adict
from .engines import drop_all_tables
diff --git a/test/lib/pickleable.py b/lib/sqlalchemy/testing/pickleable.py
index f5b8b827c..f5b8b827c 100644
--- a/test/lib/pickleable.py
+++ b/lib/sqlalchemy/testing/pickleable.py
diff --git a/test/bootstrap/__init__.py b/lib/sqlalchemy/testing/plugin/__init__.py
index e69de29bb..e69de29bb 100644
--- a/test/bootstrap/__init__.py
+++ b/lib/sqlalchemy/testing/plugin/__init__.py
diff --git a/test/bootstrap/config.py b/lib/sqlalchemy/testing/plugin/config.py
index b0e92d630..08b9753dc 100644
--- a/test/bootstrap/config.py
+++ b/lib/sqlalchemy/testing/plugin/config.py
@@ -47,7 +47,8 @@ post_configure = []
def _setup_options(opt, file_config):
global options
- options = opt
+ from sqlalchemy.testing import config
+ config.options = options = opt
pre_configure.append(_setup_options)
def _monkeypatch_cdecimal(options, file_config):
@@ -107,14 +108,17 @@ def _engine_pool(options, file_config):
post_configure.append(_engine_pool)
def _create_testing_engine(options, file_config):
- from test.lib import engines, testing
+ from sqlalchemy.testing import engines, config
+ from sqlalchemy import testing
global db
- db = engines.testing_engine(db_url, db_opts)
- testing.db = db
+ config.db = testing.db = db = engines.testing_engine(db_url, db_opts)
+ config.db_opts = db_opts
+ config.db_url = db_url
+
post_configure.append(_create_testing_engine)
def _prep_testing_database(options, file_config):
- from test.lib import engines
+ from sqlalchemy.testing import engines
from sqlalchemy import schema
# also create alt schemas etc. here?
@@ -136,7 +140,7 @@ def _prep_testing_database(options, file_config):
post_configure.append(_prep_testing_database)
def _set_table_options(options, file_config):
- from test.lib import schema
+ from sqlalchemy.testing import schema
table_options = schema.table_options
for spec in options.tableopts:
@@ -151,13 +155,14 @@ def _reverse_topological(options, file_config):
if options.reversetop:
from sqlalchemy.orm import unitofwork, session, mapper, dependency
from sqlalchemy.util import topological
- from test.lib.util import RandomSet
+ from sqlalchemy.testing.util import RandomSet
topological.set = unitofwork.set = session.set = mapper.set = \
dependency.set = RandomSet
post_configure.append(_reverse_topological)
def _requirements(options, file_config):
- from ..lib import testing
+ from sqlalchemy.testing import config
+ from sqlalchemy import testing
requirement_cls = file_config.get('sqla_testing', "requirement_cls")
modname, clsname = requirement_cls.split(":")
@@ -167,18 +172,15 @@ def _requirements(options, file_config):
mod = __import__(modname)
for component in modname.split(".")[1:]:
mod = getattr(mod, component)
-
req_cls = getattr(mod, clsname)
- global requirements
- requirements = req_cls(db, sys.modules[__name__])
- testing.requires = requirements
+ config.requirements = testing.requires = req_cls(db, config)
post_configure.append(_requirements)
-
def _setup_profiling(options, file_config):
- from ..lib import profiling
+ from sqlalchemy.testing import profiling
profiling._profile_stats = profiling.ProfileStatsFile(
file_config.get('sqla_testing', 'profile_file'))
-post_configure.append(_setup_profiling) \ No newline at end of file
+post_configure.append(_setup_profiling)
+
diff --git a/test/bootstrap/noseplugin.py b/lib/sqlalchemy/testing/plugin/noseplugin.py
index 5608a06a4..c9e12c305 100644
--- a/test/bootstrap/noseplugin.py
+++ b/lib/sqlalchemy/testing/plugin/noseplugin.py
@@ -1,3 +1,14 @@
+"""Enhance nose with extra options and behaviors for running SQLAlchemy tests.
+
+This module is imported relative to the "plugins" package as a top level
+package by the sqla_nose.py runner, so that the plugin can be loaded with
+the rest of nose including the coverage plugin before any of SQLAlchemy itself
+is imported, so that coverage works.
+
+When third party libraries use this library, it can be imported
+normally as "from sqlalchemy.testing.plugin import noseplugin".
+
+"""
import os
import ConfigParser
@@ -10,14 +21,13 @@ from .config import _log, _list_dbs, _zero_timeout, \
post_configure
# late imports
-testing = None
fixtures = None
engines = None
exclusions = None
warnings = None
profiling = None
assertions = None
-requires = None
+requirements = None
util = None
file_config = None
@@ -27,9 +37,7 @@ class NoseSQLAlchemy(Plugin):
"""
enabled = True
- # nose 1.0 will allow us to replace the old "sqlalchemy" plugin,
- # if installed, using the same name, but nose 1.0 isn't released yet...
- name = 'sqlalchemy'
+ name = 'sqla_testing'
score = 100
def options(self, parser, env=os.environ):
@@ -97,9 +105,9 @@ class NoseSQLAlchemy(Plugin):
# late imports, has to happen after config as well
# as nose plugins like coverage
- global testing, requires, util, fixtures, engines, exclusions, \
+ global util, fixtures, engines, exclusions, \
assertions, warnings, profiling
- from test.lib import testing, requires, fixtures, engines, exclusions, \
+ from sqlalchemy.testing import fixtures, engines, exclusions, \
assertions, warnings, profiling
from sqlalchemy import util
@@ -130,6 +138,7 @@ class NoseSQLAlchemy(Plugin):
return True
def _do_skips(self, cls):
+ from sqlalchemy.testing import config
if hasattr(cls, '__requires__'):
def test_suite():
return 'ok'
@@ -165,7 +174,7 @@ class NoseSQLAlchemy(Plugin):
exclusions.exclude(db, op, spec,
"'%s' unsupported on DB %s version %s" % (
cls.__name__, config.db.name,
- exclusions._server_version()))
+ exclusions._server_version(config.db)))
def beforeTest(self, test):
warnings.resetwarnings()
diff --git a/test/lib/profiling.py b/lib/sqlalchemy/testing/profiling.py
index ab0bc3f2b..be32b1d1d 100644
--- a/test/lib/profiling.py
+++ b/lib/sqlalchemy/testing/profiling.py
@@ -8,7 +8,7 @@ in a more fine-grained way than nose's profiling plugin.
import os
import sys
from .util import gc_collect, decorator
-from ..bootstrap import config
+from . import config
from nose import SkipTest
import pstats
import time
@@ -172,7 +172,10 @@ class ProfileStatsFile(object):
"" % (self.fname)
def _read(self):
- profile_f = open(self.fname)
+ try:
+ profile_f = open(self.fname)
+ except IOError:
+ return
for lineno, line in enumerate(profile_f):
line = line.strip()
if not line or line.startswith("#"):
diff --git a/lib/sqlalchemy/testing/requirements.py b/lib/sqlalchemy/testing/requirements.py
new file mode 100644
index 000000000..eca883d4e
--- /dev/null
+++ b/lib/sqlalchemy/testing/requirements.py
@@ -0,0 +1,38 @@
+"""Global database feature support policy.
+
+Provides decorators to mark tests requiring specific feature support from the
+target database.
+
+"""
+
+from .exclusions import \
+ skip, \
+ skip_if,\
+ only_if,\
+ only_on,\
+ fails_on,\
+ fails_on_everything_except,\
+ fails_if,\
+ SpecPredicate,\
+ against
+
+def no_support(db, reason):
+ return SpecPredicate(db, description=reason)
+
+def exclude(db, op, spec, description=None):
+ return SpecPredicate(db, op, spec, description=description)
+
+
+def _chain_decorators_on(*decorators):
+ def decorate(fn):
+ for decorator in reversed(decorators):
+ fn = decorator(fn)
+ return fn
+ return decorate
+
+class Requirements(object):
+ def __init__(self, db, config):
+ self.db = db
+ self.config = config
+
+
diff --git a/test/lib/schema.py b/lib/sqlalchemy/testing/schema.py
index 6c7a684e2..03da78c64 100644
--- a/test/lib/schema.py
+++ b/lib/sqlalchemy/testing/schema.py
@@ -4,7 +4,7 @@ desired state for different backends.
from . import exclusions
from sqlalchemy import schema, event
-from ..bootstrap import config
+from . import config
__all__ = 'Table', 'Column',
diff --git a/lib/sqlalchemy/testing/suite/__init__.py b/lib/sqlalchemy/testing/suite/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/lib/sqlalchemy/testing/suite/__init__.py
diff --git a/lib/sqlalchemy/testing/suite/requirements.py b/lib/sqlalchemy/testing/suite/requirements.py
new file mode 100644
index 000000000..5eda39b2b
--- /dev/null
+++ b/lib/sqlalchemy/testing/suite/requirements.py
@@ -0,0 +1,24 @@
+from ..requirements import Requirements
+from .. import exclusions
+
+
+class SuiteRequirements(Requirements):
+
+ @property
+ def create_table(self):
+ """target platform can emit basic CreateTable DDL."""
+
+ return exclusions.open
+
+ @property
+ def drop_table(self):
+ """target platform can emit basic DropTable DDL."""
+
+ return exclusions.open
+
+ @property
+ def autoincrement_insert(self):
+ """target platform generates new surrogate integer primary key values
+ when insert() is executed, excluding the pk column."""
+
+ return exclusions.open
diff --git a/lib/sqlalchemy/testing/suite/test_ddl.py b/lib/sqlalchemy/testing/suite/test_ddl.py
new file mode 100644
index 000000000..1285c4196
--- /dev/null
+++ b/lib/sqlalchemy/testing/suite/test_ddl.py
@@ -0,0 +1,48 @@
+from .. import fixtures, config, util
+from ..config import requirements
+from ..assertions import eq_
+
+from sqlalchemy import Table, Column, Integer, String
+
+
+class TableDDLTest(fixtures.TestBase):
+
+ def _simple_fixture(self):
+ return Table('test_table', self.metadata,
+ Column('id', Integer, primary_key=True),
+ Column('data', String(50))
+ )
+
+ def _simple_roundtrip(self):
+ with config.db.begin() as conn:
+ conn.execute("insert into test_table(id, data) values "
+ "(1, 'some data')")
+ result = conn.execute("select id, data from test_table")
+ eq_(
+ result.first(),
+ (1, 'some data')
+ )
+
+
+ @requirements.create_table
+ @util.provide_metadata
+ def test_create_table(self):
+ table = self._simple_fixture()
+ table.create(
+ config.db, checkfirst=False
+ )
+ self._simple_roundtrip()
+
+
+ @requirements.drop_table
+ @util.provide_metadata
+ def test_drop_table(self):
+ table = self._simple_fixture()
+ table.create(
+ config.db, checkfirst=False
+ )
+ table.drop(
+ config.db, checkfirst=False
+ )
+
+__all__ = ('TableDDLTest',) \ No newline at end of file
diff --git a/lib/sqlalchemy/testing/suite/test_reflection.py b/lib/sqlalchemy/testing/suite/test_reflection.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/lib/sqlalchemy/testing/suite/test_reflection.py
diff --git a/lib/sqlalchemy/testing/suite/test_sequencing.py b/lib/sqlalchemy/testing/suite/test_sequencing.py
new file mode 100644
index 000000000..7b09ecb76
--- /dev/null
+++ b/lib/sqlalchemy/testing/suite/test_sequencing.py
@@ -0,0 +1,36 @@
+from .. import fixtures, config, util
+from ..config import requirements
+from ..assertions import eq_
+
+from sqlalchemy import Table, Column, Integer, String
+
+
+class InsertSequencingTest(fixtures.TablesTest):
+ run_deletes = 'each'
+
+ @classmethod
+ def define_tables(cls, metadata):
+ Table('plain_pk', metadata,
+ Column('id', Integer, primary_key=True),
+ Column('data', String(50))
+ )
+
+ def _assert_round_trip(self, table):
+ row = config.db.execute(table.select()).first()
+ eq_(
+ row,
+ (1, "some data")
+ )
+
+ @requirements.autoincrement_insert
+ def test_autoincrement_on_insert(self):
+
+ config.db.execute(
+ self.tables.plain_pk.insert(),
+ data="some data"
+ )
+ self._assert_round_trip(self.tables.plain_pk)
+
+
+
+__all__ = ('InsertSequencingTest',) \ No newline at end of file
diff --git a/test/lib/util.py b/lib/sqlalchemy/testing/util.py
index c2144f6bd..625b9e6a5 100644
--- a/test/lib/util.py
+++ b/lib/sqlalchemy/testing/util.py
@@ -169,10 +169,10 @@ def fail(msg):
def provide_metadata(fn, *args, **kw):
"""Provide bound MetaData for a single test, dropping afterwards."""
- from ..bootstrap.config import db
+ from . import config
from sqlalchemy import schema
- metadata = schema.MetaData(db)
+ metadata = schema.MetaData(config.db)
self = args[0]
prev_meta = getattr(self, 'metadata', None)
self.metadata = metadata
diff --git a/test/lib/warnings.py b/lib/sqlalchemy/testing/warnings.py
index d17d9f465..799fca128 100644
--- a/test/lib/warnings.py
+++ b/lib/sqlalchemy/testing/warnings.py
@@ -7,7 +7,7 @@ from sqlalchemy import util
def testing_warn(msg, stacklevel=3):
"""Replaces sqlalchemy.util.warn during tests."""
- filename = "test.lib.testing"
+ filename = "sqlalchemy.testing.warnings"
lineno = 1
if isinstance(msg, basestring):
warnings.warn_explicit(msg, sa_exc.SAWarning, filename, lineno)
diff --git a/setup.cfg b/setup.cfg
index 01e4149c9..ef1b8dbcc 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -2,14 +2,14 @@
tag_build = dev
[nosetests]
-with-sqlalchemy = true
+with-sqla_testing = true
exclude = ^examples
first-package-wins = true
where = test
[sqla_testing]
-requirement_cls=test.lib.requires:DefaultRequirements
-profile_file=test/lib/profiles.txt
+requirement_cls=test.requirements:DefaultRequirements
+profile_file=test/profiles.txt
[db]
sqlite=sqlite:///:memory:
diff --git a/sqla_nose.py b/sqla_nose.py
index 09481410c..290fc760e 100755
--- a/sqla_nose.py
+++ b/sqla_nose.py
@@ -9,10 +9,11 @@ installs SQLAlchemy's testing plugin into the local environment.
import sys
from os import path
-for pth in ['.', './lib']:
+for pth in ['.', './lib', './lib/sqlalchemy/testing']:
sys.path.insert(0, path.join(path.dirname(path.abspath(__file__)), pth))
-from test.bootstrap.noseplugin import NoseSQLAlchemy
+
+from plugin.noseplugin import NoseSQLAlchemy
import nose
diff --git a/test/aaa_profiling/test_compiler.py b/test/aaa_profiling/test_compiler.py
index deff49f0f..2776f05ab 100644
--- a/test/aaa_profiling/test_compiler.py
+++ b/test/aaa_profiling/test_compiler.py
@@ -1,5 +1,5 @@
from sqlalchemy import *
-from test.lib import *
+from sqlalchemy.testing import *
from sqlalchemy.engine import default
class CompileTest(fixtures.TestBase, AssertsExecutionResults):
diff --git a/test/aaa_profiling/test_memusage.py b/test/aaa_profiling/test_memusage.py
index 9e58a10aa..fca0635d2 100644
--- a/test/aaa_profiling/test_memusage.py
+++ b/test/aaa_profiling/test_memusage.py
@@ -1,23 +1,24 @@
-from test.lib.testing import eq_
+from sqlalchemy.testing import eq_
from sqlalchemy.orm import mapper, relationship, create_session, \
clear_mappers, sessionmaker, class_mapper, aliased,\
Session, subqueryload
from sqlalchemy.orm.mapper import _mapper_registry
from sqlalchemy.orm.session import _sessions
import operator
-from test.lib import testing, engines
+from sqlalchemy import testing
+from sqlalchemy.testing import engines
from sqlalchemy import MetaData, Integer, String, ForeignKey, \
PickleType, create_engine, Unicode
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
import sqlalchemy as sa
from sqlalchemy.sql import column
from sqlalchemy.processors import to_decimal_processor_factory, \
to_unicode_processor_factory
-from test.lib.util import gc_collect
+from sqlalchemy.testing.util import gc_collect
from sqlalchemy.util.compat import decimal
import gc
import weakref
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
class A(fixtures.ComparableEntity):
pass
diff --git a/test/aaa_profiling/test_orm.py b/test/aaa_profiling/test_orm.py
index 12b43b229..b9eeb8361 100644
--- a/test/aaa_profiling/test_orm.py
+++ b/test/aaa_profiling/test_orm.py
@@ -1,11 +1,12 @@
-from test.lib.testing import eq_, assert_raises, \
+from sqlalchemy.testing import eq_, assert_raises, \
assert_raises_message
from sqlalchemy import exc as sa_exc, util, Integer, String, ForeignKey
from sqlalchemy.orm import exc as orm_exc, mapper, relationship, \
sessionmaker, Session
-from test.lib import testing, profiling
-from test.lib import fixtures
-from test.lib.schema import Table, Column
+from sqlalchemy import testing
+from sqlalchemy.testing import profiling
+from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.schema import Table, Column
import sys
class MergeTest(fixtures.MappedTest):
diff --git a/test/aaa_profiling/test_pool.py b/test/aaa_profiling/test_pool.py
index 6a3d93230..cf41d2684 100644
--- a/test/aaa_profiling/test_pool.py
+++ b/test/aaa_profiling/test_pool.py
@@ -1,5 +1,5 @@
from sqlalchemy import *
-from test.lib import *
+from sqlalchemy.testing import *
from sqlalchemy.pool import QueuePool
from sqlalchemy import pool as pool_module
diff --git a/test/aaa_profiling/test_resultset.py b/test/aaa_profiling/test_resultset.py
index 1b519c3f8..cf3a12fe1 100644
--- a/test/aaa_profiling/test_resultset.py
+++ b/test/aaa_profiling/test_resultset.py
@@ -1,6 +1,6 @@
from sqlalchemy import *
-from test.lib import *
-from test.lib.testing import eq_
+from sqlalchemy.testing import *
+from sqlalchemy.testing import eq_
NUM_FIELDS = 10
NUM_RECORDS = 1000
diff --git a/test/aaa_profiling/test_zoomark.py b/test/aaa_profiling/test_zoomark.py
index 97d9f1243..7a9a0e11d 100644
--- a/test/aaa_profiling/test_zoomark.py
+++ b/test/aaa_profiling/test_zoomark.py
@@ -7,7 +7,7 @@ import datetime
import sys
import time
from sqlalchemy import *
-from test.lib import *
+from sqlalchemy.testing import *
ITERATIONS = 1
dbapi_session = engines.ReplayableSession()
metadata = None
diff --git a/test/aaa_profiling/test_zoomark_orm.py b/test/aaa_profiling/test_zoomark_orm.py
index 64ceb46ff..ef6096022 100644
--- a/test/aaa_profiling/test_zoomark_orm.py
+++ b/test/aaa_profiling/test_zoomark_orm.py
@@ -8,7 +8,7 @@ import sys
import time
from sqlalchemy import *
from sqlalchemy.orm import *
-from test.lib import *
+from sqlalchemy.testing import *
ITERATIONS = 1
dbapi_session = engines.ReplayableSession()
metadata = None
diff --git a/test/base/test_dependency.py b/test/base/test_dependency.py
index f3e19982b..f4a0a4c8b 100644
--- a/test/base/test_dependency.py
+++ b/test/base/test_dependency.py
@@ -1,8 +1,8 @@
from sqlalchemy.util import topological
-from test.lib.testing import assert_raises, eq_
-from test.lib.util import conforms_partial_ordering
+from sqlalchemy.testing import assert_raises, eq_
+from sqlalchemy.testing.util import conforms_partial_ordering
from sqlalchemy import exc
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
class DependencySortTest(fixtures.TestBase):
diff --git a/test/base/test_events.py b/test/base/test_events.py
index 657ddc1be..eb58f5183 100644
--- a/test/base/test_events.py
+++ b/test/base/test_events.py
@@ -1,9 +1,9 @@
"""Test event registration and listening."""
-from test.lib.testing import eq_, assert_raises, assert_raises_message, \
+from sqlalchemy.testing import eq_, assert_raises, assert_raises_message, \
is_, is_not_
from sqlalchemy import event, exc, util
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
class EventsTest(fixtures.TestBase):
"""Test class- and instance-level event registration."""
diff --git a/test/base/test_except.py b/test/base/test_except.py
index 597f1132b..a8c7de201 100644
--- a/test/base/test_except.py
+++ b/test/base/test_except.py
@@ -2,8 +2,8 @@
from sqlalchemy import exc as sa_exceptions
-from test.lib import fixtures
-from test.lib.testing import eq_
+from sqlalchemy.testing import fixtures
+from sqlalchemy.testing import eq_
# Py3K
#StandardError = BaseException
diff --git a/test/base/test_inspect.py b/test/base/test_inspect.py
index c5a60481b..011e2d09f 100644
--- a/test/base/test_inspect.py
+++ b/test/base/test_inspect.py
@@ -1,9 +1,9 @@
"""test the inspection registry system."""
-from test.lib.testing import eq_, assert_raises_message
+from sqlalchemy.testing import eq_, assert_raises_message
from sqlalchemy import exc, util
from sqlalchemy import inspection, inspect
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
class TestFixture(object):
pass
diff --git a/test/base/test_utils.py b/test/base/test_utils.py
index a9ff7da98..ab92d8c94 100644
--- a/test/base/test_utils.py
+++ b/test/base/test_utils.py
@@ -1,10 +1,10 @@
-from test.lib.testing import assert_raises, assert_raises_message
+from sqlalchemy.testing import assert_raises, assert_raises_message
import copy, threading
from sqlalchemy import util, sql, exc
-from test.lib.testing import eq_, is_, ne_, fails_if
-from test.lib.util import gc_collect, picklers
+from sqlalchemy.testing import eq_, is_, ne_, fails_if
+from sqlalchemy.testing.util import gc_collect, picklers
from sqlalchemy.util import classproperty
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
class OrderedDictTest(fixtures.TestBase):
def test_odict(self):
diff --git a/test/dialect/test_access.py b/test/dialect/test_access.py
index e2c20804f..951d43e1a 100644
--- a/test/dialect/test_access.py
+++ b/test/dialect/test_access.py
@@ -1,7 +1,7 @@
from sqlalchemy import *
from sqlalchemy import sql
from sqlalchemy.databases import access
-from test.lib import *
+from sqlalchemy.testing import *
class CompileTest(fixtures.TestBase, AssertsCompiledSQL):
diff --git a/test/dialect/test_firebird.py b/test/dialect/test_firebird.py
index aa57711e4..5a80a3776 100644
--- a/test/dialect/test_firebird.py
+++ b/test/dialect/test_firebird.py
@@ -1,11 +1,12 @@
-from test.lib.testing import eq_, assert_raises_message
+from sqlalchemy.testing import eq_, assert_raises_message
from sqlalchemy import exc
from sqlalchemy.databases import firebird
from sqlalchemy.exc import ProgrammingError
from sqlalchemy.sql import table, column
from sqlalchemy import types as sqltypes
-from test.lib import fixtures, AssertsExecutionResults, AssertsCompiledSQL
-from test.lib import testing, engines
+from sqlalchemy.testing import fixtures, AssertsExecutionResults, AssertsCompiledSQL
+from sqlalchemy import testing
+from sqlalchemy.testing import engines
from sqlalchemy import String, VARCHAR, NVARCHAR, Unicode, Integer,\
func, insert, update, MetaData, select, Table, Column, text,\
Sequence, Float
diff --git a/test/dialect/test_informix.py b/test/dialect/test_informix.py
index 3fa2f0470..332edd24e 100644
--- a/test/dialect/test_informix.py
+++ b/test/dialect/test_informix.py
@@ -1,6 +1,6 @@
from sqlalchemy import *
from sqlalchemy.databases import informix
-from test.lib import *
+from sqlalchemy.testing import *
class CompileTest(fixtures.TestBase, AssertsCompiledSQL):
diff --git a/test/dialect/test_maxdb.py b/test/dialect/test_maxdb.py
index e0c3eafbe..237d6c9ff 100644
--- a/test/dialect/test_maxdb.py
+++ b/test/dialect/test_maxdb.py
@@ -1,12 +1,12 @@
"""MaxDB-specific tests."""
-from test.lib.testing import eq_
+from sqlalchemy.testing import eq_
import StringIO, sys
from sqlalchemy import *
from sqlalchemy import exc, sql
from sqlalchemy.util.compat import decimal
from sqlalchemy.databases import maxdb
-from test.lib import *
+from sqlalchemy.testing import *
# TODO
diff --git a/test/dialect/test_mssql.py b/test/dialect/test_mssql.py
index 9a7c90665..e15324dca 100644
--- a/test/dialect/test_mssql.py
+++ b/test/dialect/test_mssql.py
@@ -1,5 +1,5 @@
# -*- encoding: utf-8
-from test.lib.testing import eq_
+from sqlalchemy.testing import eq_
import datetime
import os
import re
@@ -12,8 +12,8 @@ from sqlalchemy.databases import mssql
from sqlalchemy.dialects.mssql import pyodbc, mxodbc, pymssql
from sqlalchemy.dialects.mssql.base import TIME
from sqlalchemy.engine import url
-from test.lib import *
-from test.lib.testing import eq_, emits_warning_on, \
+from sqlalchemy.testing import *
+from sqlalchemy.testing import eq_, emits_warning_on, \
assert_raises_message
from sqlalchemy.util.compat import decimal
from sqlalchemy.engine.reflection import Inspector
@@ -780,7 +780,7 @@ class QueryUnicodeTest(fixtures.TestBase):
finally:
meta.drop_all()
-from test.lib.assertsql import ExactSQL
+from sqlalchemy.testing.assertsql import ExactSQL
class QueryTest(testing.AssertsExecutionResults, fixtures.TestBase):
__only_on__ = 'mssql'
diff --git a/test/dialect/test_mxodbc.py b/test/dialect/test_mxodbc.py
index 6c6a4b423..32cad4168 100644
--- a/test/dialect/test_mxodbc.py
+++ b/test/dialect/test_mxodbc.py
@@ -1,7 +1,7 @@
from sqlalchemy import *
-from test.lib.testing import eq_
-from test.lib import engines
-from test.lib import fixtures
+from sqlalchemy.testing import eq_
+from sqlalchemy.testing import engines
+from sqlalchemy.testing import fixtures
# TODO: we should probably build mock bases for
# these to share with test_reconnect, test_parseconnect
diff --git a/test/dialect/test_mysql.py b/test/dialect/test_mysql.py
index 92eb52624..2a3ffe7c4 100644
--- a/test/dialect/test_mysql.py
+++ b/test/dialect/test_mysql.py
@@ -1,15 +1,16 @@
# coding: utf-8
-from test.lib.testing import eq_, assert_raises, assert_raises_message
+from sqlalchemy.testing import eq_, assert_raises, assert_raises_message
from sqlalchemy import *
from sqlalchemy import sql, exc, schema, types as sqltypes
from sqlalchemy.dialects.mysql import base as mysql
from sqlalchemy.engine.url import make_url
-from test.lib import fixtures, AssertsCompiledSQL, AssertsExecutionResults
-from test.lib import testing, engines
-from test.lib.engines import utf8_engine
+from sqlalchemy.testing import fixtures, AssertsCompiledSQL, AssertsExecutionResults
+from sqlalchemy import testing
+from sqlalchemy.testing import engines
+from sqlalchemy.testing.engines import utf8_engine
import datetime
class CompileTest(fixtures.TestBase, AssertsCompiledSQL):
diff --git a/test/dialect/test_oracle.py b/test/dialect/test_oracle.py
index 55b5bb4ba..dc39f8e8a 100644
--- a/test/dialect/test_oracle.py
+++ b/test/dialect/test_oracle.py
@@ -1,12 +1,12 @@
# coding: utf-8
-from test.lib.testing import eq_
+from sqlalchemy.testing import eq_
from sqlalchemy import *
from sqlalchemy import types as sqltypes, exc
from sqlalchemy.sql import table, column
-from test.lib import *
-from test.lib.testing import eq_, assert_raises, assert_raises_message
-from test.lib.engines import testing_engine
+from sqlalchemy.testing import *
+from sqlalchemy.testing import eq_, assert_raises, assert_raises_message
+from sqlalchemy.testing.engines import testing_engine
from sqlalchemy.dialects.oracle import cx_oracle, base as oracle
from sqlalchemy.engine import default
from sqlalchemy.util import jython
diff --git a/test/dialect/test_postgresql.py b/test/dialect/test_postgresql.py
index 73633c128..6351ce9d0 100644
--- a/test/dialect/test_postgresql.py
+++ b/test/dialect/test_postgresql.py
@@ -2,19 +2,24 @@
from __future__ import with_statement
-from test.lib.testing import eq_, assert_raises, assert_raises_message, is_
-from test.lib import engines
+from sqlalchemy.testing.assertions import eq_, assert_raises, \
+ assert_raises_message, is_, AssertsExecutionResults, \
+ AssertsCompiledSQL, ComparesTables
+from sqlalchemy.testing import engines, fixtures
+from sqlalchemy import testing
import datetime
-from sqlalchemy import *
-from sqlalchemy.orm import *
+from sqlalchemy import Table, Column, select, MetaData, text, Integer, \
+ String, Sequence, ForeignKey, join, Numeric, \
+ PrimaryKeyConstraint, DateTime, tuple_, Float, BigInteger, \
+ func, literal_column, literal, bindparam, cast, extract, \
+ SmallInteger, Enum, REAL, update, insert, Index, delete, \
+ and_, Date, TypeDecorator, Time, Unicode, Interval
+from sqlalchemy.orm import Session, mapper, aliased
from sqlalchemy import exc, schema, types
from sqlalchemy.dialects.postgresql import base as postgresql
-from sqlalchemy.engine.strategies import MockEngineStrategy
from sqlalchemy.util.compat import decimal
-from test.lib import *
-from test.lib.util import round_decimal
+from sqlalchemy.testing.util import round_decimal
from sqlalchemy.sql import table, column
-from test.lib.testing import eq_
import logging
class SequenceTest(fixtures.TestBase, AssertsCompiledSQL):
diff --git a/test/dialect/test_pyodbc.py b/test/dialect/test_pyodbc.py
index 52d6bc7c4..f5850fe98 100644
--- a/test/dialect/test_pyodbc.py
+++ b/test/dialect/test_pyodbc.py
@@ -1,6 +1,6 @@
-from test.lib.testing import eq_
+from sqlalchemy.testing import eq_
from sqlalchemy.connectors import pyodbc
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
class PyODBCTest(fixtures.TestBase):
def test_pyodbc_version(self):
diff --git a/test/dialect/test_sqlite.py b/test/dialect/test_sqlite.py
index 07995cdc4..53720d26b 100644
--- a/test/dialect/test_sqlite.py
+++ b/test/dialect/test_sqlite.py
@@ -1,6 +1,6 @@
"""SQLite-specific tests."""
-from test.lib.testing import eq_, assert_raises, \
+from sqlalchemy.testing import eq_, assert_raises, \
assert_raises_message
import datetime
from sqlalchemy import *
@@ -8,7 +8,7 @@ from sqlalchemy import exc, sql, schema, pool, types as sqltypes
from sqlalchemy.dialects.sqlite import base as sqlite, \
pysqlite as pysqlite_dialect
from sqlalchemy.engine.url import make_url
-from test.lib import *
+from sqlalchemy.testing import *
import os
from sqlalchemy.schema import CreateTable
diff --git a/test/dialect/test_suite.py b/test/dialect/test_suite.py
new file mode 100644
index 000000000..9abff4287
--- /dev/null
+++ b/test/dialect/test_suite.py
@@ -0,0 +1,8 @@
+from sqlalchemy.testing.suite.test_ddl import *
+from sqlalchemy.testing.suite.test_sequencing import *
+
+
+
+
+
+
diff --git a/test/dialect/test_sybase.py b/test/dialect/test_sybase.py
index 0a7cbf6b6..025d49aae 100644
--- a/test/dialect/test_sybase.py
+++ b/test/dialect/test_sybase.py
@@ -1,7 +1,7 @@
from sqlalchemy import *
from sqlalchemy import sql
from sqlalchemy.databases import sybase
-from test.lib import *
+from sqlalchemy.testing import *
class CompileTest(fixtures.TestBase, AssertsCompiledSQL):
diff --git a/test/engine/test_bind.py b/test/engine/test_bind.py
index 0d7b7d693..30ee43b3b 100644
--- a/test/engine/test_bind.py
+++ b/test/engine/test_bind.py
@@ -1,15 +1,15 @@
"""tests the "bind" attribute/argument across schema and SQL,
including the deprecated versions of these arguments"""
-from test.lib.testing import eq_, assert_raises
+from sqlalchemy.testing import eq_, assert_raises
from sqlalchemy import engine, exc
from sqlalchemy import MetaData, ThreadLocalMetaData
from sqlalchemy import Integer, text
-from test.lib.schema import Table
-from test.lib.schema import Column
+from sqlalchemy.testing.schema import Table
+from sqlalchemy.testing.schema import Column
import sqlalchemy as sa
-from test.lib import testing
-from test.lib import fixtures
+from sqlalchemy import testing
+from sqlalchemy.testing import fixtures
class BindTest(fixtures.TestBase):
def test_create_drop_explicit(self):
diff --git a/test/engine/test_ddlevents.py b/test/engine/test_ddlevents.py
index b341801eb..71379ec7e 100644
--- a/test/engine/test_ddlevents.py
+++ b/test/engine/test_ddlevents.py
@@ -1,16 +1,17 @@
from __future__ import with_statement
-from test.lib.testing import assert_raises, assert_raises_message
+from sqlalchemy.testing import assert_raises, assert_raises_message
from sqlalchemy.schema import DDL, CheckConstraint, AddConstraint, \
DropConstraint
from sqlalchemy import create_engine
from sqlalchemy import MetaData, Integer, String, event, exc, text
-from test.lib.schema import Table
-from test.lib.schema import Column
+from sqlalchemy.testing.schema import Table
+from sqlalchemy.testing.schema import Column
import sqlalchemy as tsa
-from test.lib import testing, engines
-from test.lib.testing import AssertsCompiledSQL, eq_
+from sqlalchemy import testing
+from sqlalchemy.testing import engines
+from sqlalchemy.testing import AssertsCompiledSQL, eq_
from nose import SkipTest
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
class DDLEventTest(fixtures.TestBase):
@@ -472,10 +473,10 @@ class DDLExecutionTest(fixtures.TestBase):
# We're abusing the DDL()
# construct here by pushing a SELECT through it
- # so that we can verify the round trip.
+ # so that we can verify the round trip.
# the DDL() will trigger autocommit, which prohibits
# some DBAPIs from returning results (pyodbc), so we
- # run in an explicit transaction.
+ # run in an explicit transaction.
with testing.db.begin() as conn:
eq_(
conn.execute(
diff --git a/test/engine/test_execute.py b/test/engine/test_execute.py
index 156a9fc35..ced72f276 100644
--- a/test/engine/test_execute.py
+++ b/test/engine/test_execute.py
@@ -1,22 +1,23 @@
from __future__ import with_statement
-from test.lib.testing import eq_, assert_raises, assert_raises_message, \
+from sqlalchemy.testing import eq_, assert_raises, assert_raises_message, \
config, is_
import re
-from test.lib.util import picklers
+from sqlalchemy.testing.util import picklers
from sqlalchemy.interfaces import ConnectionProxy
from sqlalchemy import MetaData, Integer, String, INT, VARCHAR, func, \
bindparam, select, event, TypeDecorator, create_engine, Sequence
from sqlalchemy.sql import column, literal
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
import sqlalchemy as tsa
-from test.lib import testing, engines
-from test.lib.engines import testing_engine
+from sqlalchemy import testing
+from sqlalchemy.testing import engines
+from sqlalchemy.testing.engines import testing_engine
import logging
from sqlalchemy.dialects.oracle.zxjdbc import ReturningParam
from sqlalchemy.engine import result as _result, default
from sqlalchemy.engine.base import Connection, Engine
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
import StringIO
users, metadata, users_autoinc = None, None, None
diff --git a/test/engine/test_parseconnect.py b/test/engine/test_parseconnect.py
index a87c8d056..a00a942cb 100644
--- a/test/engine/test_parseconnect.py
+++ b/test/engine/test_parseconnect.py
@@ -1,4 +1,4 @@
-from test.lib.testing import assert_raises, assert_raises_message, eq_
+from sqlalchemy.testing import assert_raises, assert_raises_message, eq_
import ConfigParser
import StringIO
import sqlalchemy.engine.url as url
@@ -6,7 +6,8 @@ from sqlalchemy import create_engine, engine_from_config, exc, pool
from sqlalchemy.engine.util import _coerce_config
from sqlalchemy.engine.default import DefaultDialect
import sqlalchemy as tsa
-from test.lib import fixtures, testing
+from sqlalchemy.testing import fixtures
+from sqlalchemy import testing
class ParseConnectTest(fixtures.TestBase):
def test_rfc1738(self):
diff --git a/test/engine/test_pool.py b/test/engine/test_pool.py
index 6f00a3c80..d991cc7be 100644
--- a/test/engine/test_pool.py
+++ b/test/engine/test_pool.py
@@ -1,11 +1,11 @@
import threading, time
from sqlalchemy import pool, interfaces, select, event
import sqlalchemy as tsa
-from test.lib import testing
-from test.lib.util import gc_collect, lazy_gc
-from test.lib.testing import eq_, assert_raises
-from test.lib.engines import testing_engine
-from test.lib import fixtures
+from sqlalchemy import testing
+from sqlalchemy.testing.util import gc_collect, lazy_gc
+from sqlalchemy.testing import eq_, assert_raises
+from sqlalchemy.testing.engines import testing_engine
+from sqlalchemy.testing import fixtures
mcid = 1
class MockDBAPI(object):
diff --git a/test/engine/test_processors.py b/test/engine/test_processors.py
index d05de6902..bc9af7305 100644
--- a/test/engine/test_processors.py
+++ b/test/engine/test_processors.py
@@ -1,5 +1,5 @@
-from test.lib import fixtures
-from test.lib.testing import assert_raises_message, eq_
+from sqlalchemy.testing import fixtures
+from sqlalchemy.testing import assert_raises_message, eq_
class _DateProcessorTest(fixtures.TestBase):
diff --git a/test/engine/test_reconnect.py b/test/engine/test_reconnect.py
index 360a20eb2..6416ce149 100644
--- a/test/engine/test_reconnect.py
+++ b/test/engine/test_reconnect.py
@@ -1,14 +1,15 @@
-from test.lib.testing import eq_, assert_raises, assert_raises_message
+from sqlalchemy.testing import eq_, assert_raises, assert_raises_message
import time
import weakref
from sqlalchemy import select, MetaData, Integer, String, pool, create_engine
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
import sqlalchemy as tsa
-from test.lib import testing, engines
-from test.lib.util import gc_collect
+from sqlalchemy import testing
+from sqlalchemy.testing import engines
+from sqlalchemy.testing.util import gc_collect
from sqlalchemy import exc
-from test.lib import fixtures
-from test.lib.engines import testing_engine
+from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.engines import testing_engine
class MockDisconnect(Exception):
pass
diff --git a/test/engine/test_reflection.py b/test/engine/test_reflection.py
index 2713bd80b..a909803a1 100644
--- a/test/engine/test_reflection.py
+++ b/test/engine/test_reflection.py
@@ -5,10 +5,11 @@ from sqlalchemy import types as sql_types
from sqlalchemy import schema, events, event, inspect
from sqlalchemy import MetaData, Integer, String
from sqlalchemy.engine.reflection import Inspector
-from test.lib import ComparesTables, \
- testing, engines, AssertsCompiledSQL, fixtures
-from test.lib.schema import Table, Column
-from test.lib.testing import eq_, assert_raises, assert_raises_message
+from sqlalchemy.testing import ComparesTables, \
+ engines, AssertsCompiledSQL, fixtures
+from sqlalchemy.testing.schema import Table, Column
+from sqlalchemy.testing import eq_, assert_raises, assert_raises_message
+from sqlalchemy import testing
metadata, users = None, None
diff --git a/test/engine/test_transaction.py b/test/engine/test_transaction.py
index 709f0d2f1..ad6813f87 100644
--- a/test/engine/test_transaction.py
+++ b/test/engine/test_transaction.py
@@ -1,15 +1,15 @@
-from test.lib.testing import eq_, assert_raises, \
+from sqlalchemy.testing import eq_, assert_raises, \
assert_raises_message, ne_
import sys
import time
import threading
-from test.lib.engines import testing_engine
+from sqlalchemy.testing.engines import testing_engine
from sqlalchemy import create_engine, MetaData, INT, VARCHAR, Sequence, \
select, Integer, String, func, text, exc
-from test.lib.schema import Table
-from test.lib.schema import Column
-from test.lib import testing
-from test.lib import fixtures
+from sqlalchemy.testing.schema import Table
+from sqlalchemy.testing.schema import Column
+from sqlalchemy import testing
+from sqlalchemy.testing import fixtures
users, metadata = None, None
diff --git a/test/ex/test_examples.py b/test/ex/test_examples.py
index ce44067fe..3182b5ab5 100644
--- a/test/ex/test_examples.py
+++ b/test/ex/test_examples.py
@@ -1,4 +1,4 @@
-from test.lib import *
+from sqlalchemy.testing import *
import os
import re
diff --git a/test/ext/declarative/test_basic.py b/test/ext/declarative/test_basic.py
index 5af2b88dc..19141143f 100644
--- a/test/ext/declarative/test_basic.py
+++ b/test/ext/declarative/test_basic.py
@@ -1,22 +1,22 @@
-from test.lib.testing import eq_, assert_raises, \
+from sqlalchemy.testing import eq_, assert_raises, \
assert_raises_message, is_
from sqlalchemy.ext import declarative as decl
from sqlalchemy import exc
import sqlalchemy as sa
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy import MetaData, Integer, String, ForeignKey, \
ForeignKeyConstraint, Index
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.orm import relationship, create_session, class_mapper, \
joinedload, configure_mappers, backref, clear_mappers, \
deferred, column_property, composite,\
Session
-from test.lib.testing import eq_
+from sqlalchemy.testing import eq_
from sqlalchemy.util import classproperty
from sqlalchemy.ext.declarative import declared_attr, AbstractConcreteBase, ConcreteBase
-from test.lib import fixtures
-from test.lib.util import gc_collect
+from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.util import gc_collect
Base = None
diff --git a/test/ext/declarative/test_clsregistry.py b/test/ext/declarative/test_clsregistry.py
index f657beb65..db4b01470 100644
--- a/test/ext/declarative/test_clsregistry.py
+++ b/test/ext/declarative/test_clsregistry.py
@@ -1,6 +1,6 @@
-from test.lib import fixtures
-from test.lib.util import gc_collect
-from test.lib.testing import assert_raises_message, is_, eq_
+from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.util import gc_collect
+from sqlalchemy.testing import assert_raises_message, is_, eq_
from sqlalchemy import exc, MetaData
from sqlalchemy.ext.declarative import clsregistry
import weakref
diff --git a/test/ext/declarative/test_inheritance.py b/test/ext/declarative/test_inheritance.py
index 86bd1c28e..ab78cc3e2 100644
--- a/test/ext/declarative/test_inheritance.py
+++ b/test/ext/declarative/test_inheritance.py
@@ -1,21 +1,21 @@
-from test.lib.testing import eq_, assert_raises, \
+from sqlalchemy.testing import eq_, assert_raises, \
assert_raises_message, is_
from sqlalchemy.ext import declarative as decl
from sqlalchemy import exc
import sqlalchemy as sa
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy import MetaData, Integer, String, ForeignKey, \
ForeignKeyConstraint, Index
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.orm import relationship, create_session, class_mapper, \
joinedload, configure_mappers, backref, clear_mappers, \
polymorphic_union, deferred, column_property, composite,\
Session
-from test.lib.testing import eq_
+from sqlalchemy.testing import eq_
from sqlalchemy.util import classproperty
from sqlalchemy.ext.declarative import declared_attr, AbstractConcreteBase, ConcreteBase
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
Base = None
diff --git a/test/ext/declarative/test_mixin.py b/test/ext/declarative/test_mixin.py
index bec9a659d..fb674f27a 100644
--- a/test/ext/declarative/test_mixin.py
+++ b/test/ext/declarative/test_mixin.py
@@ -1,17 +1,17 @@
-from test.lib.testing import eq_, assert_raises, \
+from sqlalchemy.testing import eq_, assert_raises, \
assert_raises_message, is_
from sqlalchemy.ext import declarative as decl
import sqlalchemy as sa
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy import Integer, String, ForeignKey
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.orm import relationship, create_session, class_mapper, \
configure_mappers, clear_mappers, \
deferred, column_property, \
Session
from sqlalchemy.util import classproperty
from sqlalchemy.ext.declarative import declared_attr
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
Base = None
diff --git a/test/ext/declarative/test_reflection.py b/test/ext/declarative/test_reflection.py
index d5fd8e787..013439f93 100644
--- a/test/ext/declarative/test_reflection.py
+++ b/test/ext/declarative/test_reflection.py
@@ -1,12 +1,12 @@
-from test.lib.testing import eq_, assert_raises
+from sqlalchemy.testing import eq_, assert_raises
from sqlalchemy.ext import declarative as decl
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy import MetaData, Integer, String, ForeignKey
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.orm import relationship, create_session, \
clear_mappers, \
Session
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
class DeclarativeReflectionBase(fixtures.TablesTest):
__requires__ = 'reflectable_autoincrement',
diff --git a/test/ext/test_associationproxy.py b/test/ext/test_associationproxy.py
index 7ae467363..5bec0ad1d 100644
--- a/test/ext/test_associationproxy.py
+++ b/test/ext/test_associationproxy.py
@@ -1,4 +1,4 @@
-from test.lib.testing import eq_, assert_raises
+from sqlalchemy.testing import eq_, assert_raises
import copy
import pickle
@@ -7,12 +7,12 @@ from sqlalchemy.orm import *
from sqlalchemy.orm.collections import collection, attribute_mapped_collection
from sqlalchemy.ext.associationproxy import *
from sqlalchemy.ext.associationproxy import _AssociationList
-from test.lib import *
-from test.lib.testing import assert_raises_message
-from test.lib.util import gc_collect
+from sqlalchemy.testing import assert_raises_message
+from sqlalchemy.testing.util import gc_collect
from sqlalchemy.sql import not_
-from test.lib import fixtures
-
+from sqlalchemy.testing import fixtures, AssertsCompiledSQL
+from sqlalchemy import testing
+from sqlalchemy.testing.schema import Table, Column
class DictCollection(dict):
@collection.appender
diff --git a/test/ext/test_compiler.py b/test/ext/test_compiler.py
index d4931931a..c1f8b6258 100644
--- a/test/ext/test_compiler.py
+++ b/test/ext/test_compiler.py
@@ -8,8 +8,8 @@ from sqlalchemy.schema import DDLElement
from sqlalchemy.ext.compiler import compiles, deregister
from sqlalchemy import exc
from sqlalchemy.sql import table, column, visitors
-from test.lib.testing import assert_raises_message
-from test.lib import *
+from sqlalchemy.testing import assert_raises_message
+from sqlalchemy.testing import fixtures, AssertsCompiledSQL
class UserDefinedTest(fixtures.TestBase, AssertsCompiledSQL):
__dialect__ = 'default'
diff --git a/test/ext/test_extendedattr.py b/test/ext/test_extendedattr.py
index 286c1905f..a550ae4d0 100644
--- a/test/ext/test_extendedattr.py
+++ b/test/ext/test_extendedattr.py
@@ -1,14 +1,14 @@
-from test.lib.testing import eq_, assert_raises, assert_raises_message, ne_
+from sqlalchemy.testing import eq_, assert_raises, assert_raises_message, ne_
from sqlalchemy import util
from sqlalchemy.orm import attributes
from sqlalchemy.orm.attributes import set_attribute, get_attribute, del_attribute
from sqlalchemy.orm.instrumentation import is_instrumented
from sqlalchemy.orm import clear_mappers
-from test.lib import *
-from test.lib import fixtures
+from sqlalchemy import testing
+from sqlalchemy.testing import fixtures
from sqlalchemy.ext import instrumentation
from sqlalchemy.orm.instrumentation import register_class
-from test.lib.util import decorator
+from sqlalchemy.testing.util import decorator
from sqlalchemy.orm import events
from sqlalchemy import event
diff --git a/test/ext/test_horizontal_shard.py b/test/ext/test_horizontal_shard.py
index 93ebae48f..0b9b89d2b 100644
--- a/test/ext/test_horizontal_shard.py
+++ b/test/ext/test_horizontal_shard.py
@@ -5,9 +5,10 @@ from sqlalchemy import sql, util
from sqlalchemy.orm import *
from sqlalchemy.ext.horizontal_shard import ShardedSession
from sqlalchemy.sql import operators
-from test.lib import *
-from test.lib.engines import testing_engine
-from test.lib.testing import eq_
+from sqlalchemy.testing import fixtures
+from sqlalchemy import testing
+from sqlalchemy.testing.engines import testing_engine
+from sqlalchemy.testing import eq_
from nose import SkipTest
# TODO: ShardTest can be turned into a base for further subclasses
diff --git a/test/ext/test_hybrid.py b/test/ext/test_hybrid.py
index 77966e6e5..e7f392a33 100644
--- a/test/ext/test_hybrid.py
+++ b/test/ext/test_hybrid.py
@@ -1,10 +1,10 @@
from sqlalchemy import func, Integer, String, ForeignKey
from sqlalchemy.orm import relationship, Session, aliased
-from test.lib.schema import Column
+from sqlalchemy.testing.schema import Column
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.ext import hybrid
-from test.lib.testing import eq_, AssertsCompiledSQL, assert_raises_message
-from test.lib import fixtures
+from sqlalchemy.testing import eq_, AssertsCompiledSQL, assert_raises_message
+from sqlalchemy.testing import fixtures
class PropertyComparatorTest(fixtures.TestBase, AssertsCompiledSQL):
__dialect__ = 'default'
diff --git a/test/ext/test_mutable.py b/test/ext/test_mutable.py
index c345d8fe3..f56ce4037 100644
--- a/test/ext/test_mutable.py
+++ b/test/ext/test_mutable.py
@@ -3,11 +3,11 @@ from sqlalchemy.types import PickleType, TypeDecorator, VARCHAR
from sqlalchemy.orm import mapper, Session, composite
from sqlalchemy.orm.mapper import Mapper
from sqlalchemy.orm.instrumentation import ClassManager
-from test.lib.schema import Table, Column
-from test.lib.testing import eq_, assert_raises_message
-from test.lib.util import picklers
-from test.lib import testing
-from test.lib import fixtures
+from sqlalchemy.testing.schema import Table, Column
+from sqlalchemy.testing import eq_, assert_raises_message
+from sqlalchemy.testing.util import picklers
+from sqlalchemy import testing
+from sqlalchemy.testing import fixtures
import sys
import pickle
diff --git a/test/ext/test_orderinglist.py b/test/ext/test_orderinglist.py
index 0b7d4328e..37b992f5b 100644
--- a/test/ext/test_orderinglist.py
+++ b/test/ext/test_orderinglist.py
@@ -1,10 +1,11 @@
from sqlalchemy import Integer, ForeignKey, String, MetaData
from sqlalchemy.orm import relationship, mapper, create_session
from sqlalchemy.ext.orderinglist import ordering_list
-from test.lib.testing import eq_
-from test.lib import fixtures, testing
-from test.lib.schema import Table, Column
-from test.lib.util import picklers
+from sqlalchemy.testing import eq_
+from sqlalchemy.testing import fixtures
+from sqlalchemy import testing
+from sqlalchemy.testing.schema import Table, Column
+from sqlalchemy.testing.util import picklers
metadata = None
diff --git a/test/ext/test_serializer.py b/test/ext/test_serializer.py
index 0496479aa..bf268fbbb 100644
--- a/test/ext/test_serializer.py
+++ b/test/ext/test_serializer.py
@@ -2,16 +2,16 @@
from sqlalchemy.ext import serializer
from sqlalchemy import exc
import sqlalchemy as sa
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy import MetaData, Integer, String, ForeignKey, select, \
desc, func, util
-from test.lib.schema import Table
-from test.lib.schema import Column
+from sqlalchemy.testing.schema import Table
+from sqlalchemy.testing.schema import Column
from sqlalchemy.orm import relationship, sessionmaker, scoped_session, \
class_mapper, mapper, joinedload, configure_mappers, aliased
-from test.lib.testing import eq_
+from sqlalchemy.testing import eq_
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
class User(fixtures.ComparableEntity):
pass
diff --git a/test/lib/__init__.py b/test/lib/__init__.py
deleted file mode 100644
index a1b8eb6d1..000000000
--- a/test/lib/__init__.py
+++ /dev/null
@@ -1,22 +0,0 @@
-"""Testing environment and utilities.
-
-"""
-
-from ..bootstrap import config
-from . import testing, engines, requires, profiling, pickleable, \
- fixtures
-from .schema import Column, Table
-from .assertions import AssertsCompiledSQL, \
- AssertsExecutionResults, ComparesTables
-from .util import rowset
-
-
-__all__ = ('testing',
- 'Column', 'Table',
- 'rowset',
- 'fixtures',
- 'AssertsExecutionResults',
- 'AssertsCompiledSQL', 'ComparesTables',
- 'engines', 'profiling', 'pickleable')
-
-
diff --git a/test/orm/_fixtures.py b/test/orm/_fixtures.py
index e51924b77..c21833619 100644
--- a/test/orm/_fixtures.py
+++ b/test/orm/_fixtures.py
@@ -1,10 +1,10 @@
from sqlalchemy import MetaData, Integer, String, ForeignKey
from sqlalchemy import util
-from test.lib.schema import Table
-from test.lib.schema import Column
+from sqlalchemy.testing.schema import Table
+from sqlalchemy.testing.schema import Column
from sqlalchemy.orm import attributes, mapper, relationship, \
backref, configure_mappers
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
__all__ = ()
diff --git a/test/orm/inheritance/_poly_fixtures.py b/test/orm/inheritance/_poly_fixtures.py
index 6c502f58d..55783cd69 100644
--- a/test/orm/inheritance/_poly_fixtures.py
+++ b/test/orm/inheritance/_poly_fixtures.py
@@ -6,9 +6,9 @@ from sqlalchemy.orm import interfaces, relationship, mapper, \
from sqlalchemy import exc as sa_exc
from sqlalchemy.engine import default
-from test.lib import AssertsCompiledSQL, fixtures, testing
-from test.lib.schema import Table, Column
-from test.lib.testing import assert_raises, eq_
+from sqlalchemy.testing import AssertsCompiledSQL, fixtures, testing
+from sqlalchemy.testing.schema import Table, Column
+from sqlalchemy.testing import assert_raises, eq_
class Company(fixtures.ComparableEntity):
pass
diff --git a/test/orm/inheritance/test_abc_inheritance.py b/test/orm/inheritance/test_abc_inheritance.py
index 3a61adb18..757f8868e 100644
--- a/test/orm/inheritance/test_abc_inheritance.py
+++ b/test/orm/inheritance/test_abc_inheritance.py
@@ -2,9 +2,9 @@ from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.orm.interfaces import ONETOMANY, MANYTOONE
-from test.lib import testing
-from test.lib.schema import Table, Column
-from test.lib import fixtures
+from sqlalchemy import testing
+from sqlalchemy.testing.schema import Table, Column
+from sqlalchemy.testing import fixtures
def produce_test(parent, child, direction):
diff --git a/test/orm/inheritance/test_abc_polymorphic.py b/test/orm/inheritance/test_abc_polymorphic.py
index 746bf0f13..f32805cc7 100644
--- a/test/orm/inheritance/test_abc_polymorphic.py
+++ b/test/orm/inheritance/test_abc_polymorphic.py
@@ -2,11 +2,11 @@ from sqlalchemy import *
from sqlalchemy import util
from sqlalchemy.orm import *
-from test.lib.util import function_named
-from test.lib import fixtures
+from sqlalchemy.testing.util import function_named
+from sqlalchemy.testing import fixtures
from test.orm import _fixtures
-from test.lib.testing import eq_
-from test.lib.schema import Table, Column
+from sqlalchemy.testing import eq_
+from sqlalchemy.testing.schema import Table, Column
class ABCTest(fixtures.MappedTest):
@classmethod
diff --git a/test/orm/inheritance/test_assorted_poly.py b/test/orm/inheritance/test_assorted_poly.py
index fe9fb493b..9c0ba989e 100644
--- a/test/orm/inheritance/test_assorted_poly.py
+++ b/test/orm/inheritance/test_assorted_poly.py
@@ -3,17 +3,17 @@ These are generally tests derived from specific user issues.
"""
-from test.lib.testing import eq_
+from sqlalchemy.testing import eq_
from sqlalchemy import *
from sqlalchemy import util
from sqlalchemy.orm import *
from sqlalchemy.orm.interfaces import MANYTOONE
-from test.lib import AssertsExecutionResults, testing
-from test.lib.util import function_named
-from test.lib import fixtures
+from sqlalchemy.testing import AssertsExecutionResults, testing
+from sqlalchemy.testing.util import function_named
+from sqlalchemy.testing import fixtures
from test.orm import _fixtures
-from test.lib.testing import eq_
-from test.lib.schema import Table, Column
+from sqlalchemy.testing import eq_
+from sqlalchemy.testing.schema import Table, Column
class AttrSettable(object):
def __init__(self, **kwargs):
diff --git a/test/orm/inheritance/test_basic.py b/test/orm/inheritance/test_basic.py
index ad30ab44d..66991e922 100644
--- a/test/orm/inheritance/test_basic.py
+++ b/test/orm/inheritance/test_basic.py
@@ -1,18 +1,19 @@
import warnings
-from test.lib.testing import eq_, assert_raises, assert_raises_message
+from sqlalchemy.testing import eq_, assert_raises, assert_raises_message
from sqlalchemy import *
from sqlalchemy import exc as sa_exc, util, event
from sqlalchemy.orm import *
from sqlalchemy.orm import exc as orm_exc, attributes
-from test.lib.assertsql import AllOf, CompiledSQL
+from sqlalchemy.testing.assertsql import AllOf, CompiledSQL
from sqlalchemy.sql import table, column
-from test.lib import testing, engines
-from test.lib import fixtures
+from sqlalchemy import testing
+from sqlalchemy.testing import engines
+from sqlalchemy.testing import fixtures
from test.orm import _fixtures
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy import inspect
from sqlalchemy.ext.declarative import declarative_base
-from test.lib.util import gc_collect
+from sqlalchemy.testing.util import gc_collect
class O2MTest(fixtures.MappedTest):
"""deals with inheritance and one-to-many relationships"""
diff --git a/test/orm/inheritance/test_concrete.py b/test/orm/inheritance/test_concrete.py
index d51efa62b..40c3ab31b 100644
--- a/test/orm/inheritance/test_concrete.py
+++ b/test/orm/inheritance/test_concrete.py
@@ -1,15 +1,15 @@
-from test.lib.testing import eq_, assert_raises, \
+from sqlalchemy.testing import eq_, assert_raises, \
assert_raises_message
from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.orm import exc as orm_exc
-from test.lib import *
+from sqlalchemy.testing import *
import sqlalchemy as sa
-from test.lib import testing
-from test.lib import fixtures
+from sqlalchemy import testing
+from sqlalchemy.testing import fixtures
from sqlalchemy.orm import attributes
-from test.lib.testing import eq_
-from test.lib.schema import Table, Column
+from sqlalchemy.testing import eq_
+from sqlalchemy.testing.schema import Table, Column
class Employee(object):
diff --git a/test/orm/inheritance/test_magazine.py b/test/orm/inheritance/test_magazine.py
index a1118aa86..ae5aa8c8d 100644
--- a/test/orm/inheritance/test_magazine.py
+++ b/test/orm/inheritance/test_magazine.py
@@ -1,10 +1,10 @@
from sqlalchemy import *
from sqlalchemy.orm import *
-from test.lib import testing
-from test.lib.util import function_named
-from test.lib import fixtures
-from test.lib.schema import Table, Column
+from sqlalchemy import testing
+from sqlalchemy.testing.util import function_named
+from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.schema import Table, Column
class BaseObject(object):
def __init__(self, *args, **kwargs):
diff --git a/test/orm/inheritance/test_manytomany.py b/test/orm/inheritance/test_manytomany.py
index 1d5d8b297..e4df5d133 100644
--- a/test/orm/inheritance/test_manytomany.py
+++ b/test/orm/inheritance/test_manytomany.py
@@ -1,9 +1,9 @@
-from test.lib.testing import eq_
+from sqlalchemy.testing import eq_
from sqlalchemy import *
from sqlalchemy.orm import *
-from test.lib import testing
-from test.lib import fixtures
+from sqlalchemy import testing
+from sqlalchemy.testing import fixtures
class InheritTest(fixtures.MappedTest):
diff --git a/test/orm/inheritance/test_poly_linked_list.py b/test/orm/inheritance/test_poly_linked_list.py
index f87662587..1915007de 100644
--- a/test/orm/inheritance/test_poly_linked_list.py
+++ b/test/orm/inheritance/test_poly_linked_list.py
@@ -1,9 +1,9 @@
from sqlalchemy import *
from sqlalchemy.orm import *
-from test.lib import fixtures
-from test.lib import testing
-from test.lib.schema import Table, Column
+from sqlalchemy.testing import fixtures
+from sqlalchemy import testing
+from sqlalchemy.testing.schema import Table, Column
class PolymorphicCircularTest(fixtures.MappedTest):
diff --git a/test/orm/inheritance/test_poly_persistence.py b/test/orm/inheritance/test_poly_persistence.py
index 5b5844b70..3450c133c 100644
--- a/test/orm/inheritance/test_poly_persistence.py
+++ b/test/orm/inheritance/test_poly_persistence.py
@@ -1,14 +1,14 @@
"""tests basic polymorphic mapper loading/saving, minimal relationships"""
-from test.lib.testing import eq_, assert_raises, assert_raises_message
+from sqlalchemy.testing import eq_, assert_raises, assert_raises_message
from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.orm import exc as orm_exc
from sqlalchemy import exc as sa_exc
-from test.lib import Column, testing
-from test.lib.util import function_named
+from sqlalchemy.testing import Column, testing
+from sqlalchemy.testing.util import function_named
from test.orm import _fixtures
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
class Person(fixtures.ComparableEntity):
pass
diff --git a/test/orm/inheritance/test_polymorphic_rel.py b/test/orm/inheritance/test_polymorphic_rel.py
index 6d7bcb676..8bbde972d 100644
--- a/test/orm/inheritance/test_polymorphic_rel.py
+++ b/test/orm/inheritance/test_polymorphic_rel.py
@@ -4,8 +4,8 @@ from sqlalchemy.orm import interfaces, create_session, joinedload, joinedload_al
class_mapper
from sqlalchemy import exc as sa_exc
-from test.lib import testing
-from test.lib.testing import assert_raises, eq_
+from sqlalchemy import testing
+from sqlalchemy.testing import assert_raises, eq_
from _poly_fixtures import Company, Person, Engineer, Manager, Boss, \
Machine, Paperwork, _Polymorphic,\
diff --git a/test/orm/inheritance/test_productspec.py b/test/orm/inheritance/test_productspec.py
index d7c7eb24a..c1e99e338 100644
--- a/test/orm/inheritance/test_productspec.py
+++ b/test/orm/inheritance/test_productspec.py
@@ -2,9 +2,9 @@ from datetime import datetime
from sqlalchemy import *
from sqlalchemy.orm import *
-from test.lib import testing
-from test.lib import fixtures
-from test.lib.schema import Table, Column
+from sqlalchemy import testing
+from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.schema import Table, Column
class InheritTest(fixtures.MappedTest):
"""tests some various inheritance round trips involving a particular set of polymorphic inheritance relationships"""
diff --git a/test/orm/inheritance/test_relationship.py b/test/orm/inheritance/test_relationship.py
index a4e19b988..5511614c8 100644
--- a/test/orm/inheritance/test_relationship.py
+++ b/test/orm/inheritance/test_relationship.py
@@ -5,9 +5,9 @@ from sqlalchemy.orm import create_session, relationship, mapper, \
from sqlalchemy import Integer, String, ForeignKey
from sqlalchemy.engine import default
-from test.lib import AssertsCompiledSQL, fixtures, testing
-from test.lib.schema import Table, Column
-from test.lib.testing import assert_raises, eq_
+from sqlalchemy.testing import AssertsCompiledSQL, fixtures, testing
+from sqlalchemy.testing.schema import Table, Column
+from sqlalchemy.testing import assert_raises, eq_
class Company(fixtures.ComparableEntity):
pass
diff --git a/test/orm/inheritance/test_selects.py b/test/orm/inheritance/test_selects.py
index 9758744ca..dd9c8c8b8 100644
--- a/test/orm/inheritance/test_selects.py
+++ b/test/orm/inheritance/test_selects.py
@@ -1,9 +1,9 @@
from sqlalchemy import *
from sqlalchemy.orm import *
-from test.lib import testing
+from sqlalchemy import testing
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
class InheritingSelectablesTest(fixtures.MappedTest):
@classmethod
diff --git a/test/orm/inheritance/test_single.py b/test/orm/inheritance/test_single.py
index 774626c48..08a693b92 100644
--- a/test/orm/inheritance/test_single.py
+++ b/test/orm/inheritance/test_single.py
@@ -1,11 +1,11 @@
-from test.lib.testing import eq_
+from sqlalchemy.testing import eq_
from sqlalchemy import *
from sqlalchemy.orm import *
-from test.lib import testing
+from sqlalchemy import testing
from test.orm import _fixtures
-from test.lib import fixtures
-from test.lib.schema import Table, Column
+from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.schema import Table, Column
class SingleInheritanceTest(testing.AssertsCompiledSQL, fixtures.MappedTest):
diff --git a/test/orm/inheritance/test_with_poly.py b/test/orm/inheritance/test_with_poly.py
index dc0035b6a..cbf2c9651 100644
--- a/test/orm/inheritance/test_with_poly.py
+++ b/test/orm/inheritance/test_with_poly.py
@@ -6,9 +6,9 @@ from sqlalchemy.orm import interfaces, relationship, mapper, \
from sqlalchemy import exc as sa_exc
from sqlalchemy.engine import default
-from test.lib import AssertsCompiledSQL, fixtures, testing
-from test.lib.schema import Table, Column
-from test.lib.testing import assert_raises, eq_
+from sqlalchemy.testing import AssertsCompiledSQL, fixtures, testing
+from sqlalchemy.testing.schema import Table, Column
+from sqlalchemy.testing import assert_raises, eq_
from _poly_fixtures import Company, Person, Engineer, Manager, Boss, \
Machine, Paperwork, _PolymorphicFixtureBase, _Polymorphic,\
diff --git a/test/orm/test_association.py b/test/orm/test_association.py
index 47d0b1ddc..376cfaa84 100644
--- a/test/orm/test_association.py
+++ b/test/orm/test_association.py
@@ -1,10 +1,10 @@
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy import Integer, String, ForeignKey
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.orm import mapper, relationship, create_session
-from test.lib import fixtures
-from test.lib.testing import eq_
+from sqlalchemy.testing import fixtures
+from sqlalchemy.testing import eq_
class AssociationTest(fixtures.MappedTest):
diff --git a/test/orm/test_assorted_eager.py b/test/orm/test_assorted_eager.py
index dded00256..a1c96bdfa 100644
--- a/test/orm/test_assorted_eager.py
+++ b/test/orm/test_assorted_eager.py
@@ -9,12 +9,12 @@ be cleaned up and modernized.
import datetime
import sqlalchemy as sa
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy import Integer, String, ForeignKey
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.orm import mapper, relationship, backref, create_session
-from test.lib.testing import eq_
-from test.lib import fixtures
+from sqlalchemy.testing import eq_
+from sqlalchemy.testing import fixtures
class EagerTest(fixtures.MappedTest):
diff --git a/test/orm/test_attributes.py b/test/orm/test_attributes.py
index 7c0c9527a..ecdfef294 100644
--- a/test/orm/test_attributes.py
+++ b/test/orm/test_attributes.py
@@ -3,11 +3,11 @@ from sqlalchemy.orm import attributes, instrumentation, exc as orm_exc
from sqlalchemy.orm.collections import collection
from sqlalchemy.orm.interfaces import AttributeExtension
from sqlalchemy import exc as sa_exc
-from test.lib import *
-from test.lib.testing import eq_, ne_, assert_raises, \
+from sqlalchemy.testing import *
+from sqlalchemy.testing import eq_, ne_, assert_raises, \
assert_raises_message
-from test.lib import fixtures
-from test.lib.util import gc_collect, all_partial_orderings
+from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.util import gc_collect, all_partial_orderings
from sqlalchemy.util import jython
from sqlalchemy import event
diff --git a/test/orm/test_backref_mutations.py b/test/orm/test_backref_mutations.py
index 7e425a457..925eedfa9 100644
--- a/test/orm/test_backref_mutations.py
+++ b/test/orm/test_backref_mutations.py
@@ -9,16 +9,16 @@ UPDATE in the database.
"""
-from test.lib.testing import assert_raises, assert_raises_message
+from sqlalchemy.testing import assert_raises, assert_raises_message
from sqlalchemy import Integer, String, ForeignKey, Sequence, exc as sa_exc
-from test.lib.schema import Table
-from test.lib.schema import Column
+from sqlalchemy.testing.schema import Table
+from sqlalchemy.testing.schema import Column
from sqlalchemy.orm import mapper, relationship, create_session, \
class_mapper, backref, sessionmaker, Session
from sqlalchemy.orm import attributes, exc as orm_exc
-from test.lib import testing
-from test.lib.testing import eq_
-from test.lib import fixtures
+from sqlalchemy import testing
+from sqlalchemy.testing import eq_
+from sqlalchemy.testing import fixtures
from test.orm import _fixtures
class O2MCollectionTest(_fixtures.FixtureTest):
diff --git a/test/orm/test_bind.py b/test/orm/test_bind.py
index 00d9bb094..0d869130b 100644
--- a/test/orm/test_bind.py
+++ b/test/orm/test_bind.py
@@ -1,11 +1,11 @@
-from test.lib.testing import assert_raises, assert_raises_message
+from sqlalchemy.testing import assert_raises, assert_raises_message
from sqlalchemy import MetaData, Integer
-from test.lib.schema import Table
-from test.lib.schema import Column
+from sqlalchemy.testing.schema import Table
+from sqlalchemy.testing.schema import Column
from sqlalchemy.orm import mapper, create_session
import sqlalchemy as sa
-from test.lib import testing
-from test.lib import fixtures
+from sqlalchemy import testing
+from sqlalchemy.testing import fixtures
class BindTest(fixtures.MappedTest):
diff --git a/test/orm/test_cascade.py b/test/orm/test_cascade.py
index ee3c7b63e..f681fc498 100644
--- a/test/orm/test_cascade.py
+++ b/test/orm/test_cascade.py
@@ -1,15 +1,15 @@
-from test.lib.testing import assert_raises, assert_raises_message
+from sqlalchemy.testing import assert_raises, assert_raises_message
from sqlalchemy import Integer, String, ForeignKey, Sequence, \
exc as sa_exc
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.orm import mapper, relationship, create_session, \
sessionmaker, class_mapper, backref, Session, util as orm_util,\
configure_mappers
from sqlalchemy.orm import attributes, exc as orm_exc
-from test.lib import testing
-from test.lib.testing import eq_
-from test.lib import fixtures
+from sqlalchemy import testing
+from sqlalchemy.testing import eq_
+from sqlalchemy.testing import fixtures
from test.orm import _fixtures
class CascadeArgTest(fixtures.MappedTest):
diff --git a/test/orm/test_collection.py b/test/orm/test_collection.py
index b3de03aae..dc8aa2bc4 100644
--- a/test/orm/test_collection.py
+++ b/test/orm/test_collection.py
@@ -1,4 +1,4 @@
-from test.lib.testing import eq_
+from sqlalchemy.testing import eq_
import sys
from operator import and_
@@ -6,14 +6,14 @@ import sqlalchemy.orm.collections as collections
from sqlalchemy.orm.collections import collection
import sqlalchemy as sa
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy import Integer, String, ForeignKey, text
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy import util, exc as sa_exc
from sqlalchemy.orm import create_session, mapper, relationship, \
attributes, instrumentation
-from test.lib import fixtures
-from test.lib.testing import eq_, assert_raises, assert_raises_message
+from sqlalchemy.testing import fixtures
+from sqlalchemy.testing import eq_, assert_raises, assert_raises_message
class Canary(sa.orm.interfaces.AttributeExtension):
def __init__(self):
@@ -1669,7 +1669,7 @@ class ColumnMappedWSerialize(fixtures.MappedTest):
])
def _run_test(self, specs):
- from test.lib.util import picklers
+ from sqlalchemy.testing.util import picklers
for spec, obj, expected in specs:
coll = collections.column_mapped_collection(spec)()
eq_(
diff --git a/test/orm/test_compile.py b/test/orm/test_compile.py
index 1b2714d70..d5823b7a6 100644
--- a/test/orm/test_compile.py
+++ b/test/orm/test_compile.py
@@ -1,9 +1,9 @@
from sqlalchemy import *
from sqlalchemy import exc as sa_exc
from sqlalchemy.orm import *
-from test.lib import *
-from test.lib.testing import assert_raises_message
-from test.lib import fixtures
+from sqlalchemy.testing import *
+from sqlalchemy.testing import assert_raises_message
+from sqlalchemy.testing import fixtures
class CompileTest(fixtures.ORMTest):
diff --git a/test/orm/test_composites.py b/test/orm/test_composites.py
index 5e5775dc2..f9af0c702 100644
--- a/test/orm/test_composites.py
+++ b/test/orm/test_composites.py
@@ -1,17 +1,17 @@
-from test.lib.testing import assert_raises, assert_raises_message
+from sqlalchemy.testing import assert_raises, assert_raises_message
import sqlalchemy as sa
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy import MetaData, Integer, String, ForeignKey, func, \
util, select
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.orm import mapper, relationship, backref, \
class_mapper, CompositeProperty, \
validates, aliased
from sqlalchemy.orm import attributes, \
composite, relationship, \
Session
-from test.lib.testing import eq_
-from test.lib import fixtures
+from sqlalchemy.testing import eq_
+from sqlalchemy.testing import fixtures
from test.orm import _fixtures
diff --git a/test/orm/test_cycles.py b/test/orm/test_cycles.py
index dce8e04de..1da57b050 100644
--- a/test/orm/test_cycles.py
+++ b/test/orm/test_cycles.py
@@ -5,14 +5,14 @@ T1<->T2, with o2m or m2o between them, and a third T3 with o2m/m2o to one/both
T1/T2.
"""
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy import Integer, String, ForeignKey
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.orm import mapper, relationship, backref, \
create_session, sessionmaker
-from test.lib.testing import eq_
-from test.lib.assertsql import RegexSQL, ExactSQL, CompiledSQL, AllOf
-from test.lib import fixtures
+from sqlalchemy.testing import eq_
+from sqlalchemy.testing.assertsql import RegexSQL, ExactSQL, CompiledSQL, AllOf
+from sqlalchemy.testing import fixtures
class SelfReferentialTest(fixtures.MappedTest):
diff --git a/test/orm/test_default_strategies.py b/test/orm/test_default_strategies.py
index 675cebda8..b986ac568 100644
--- a/test/orm/test_default_strategies.py
+++ b/test/orm/test_default_strategies.py
@@ -1,10 +1,10 @@
from test.orm import _fixtures
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy.orm import mapper, relationship, create_session
from sqlalchemy import util
from sqlalchemy.util import any
import sqlalchemy as sa
-from test.lib.testing import eq_, assert_raises_message
+from sqlalchemy.testing import eq_, assert_raises_message
class DefaultStrategyOptionsTest(_fixtures.FixtureTest):
diff --git a/test/orm/test_defaults.py b/test/orm/test_defaults.py
index a246cddae..2c4656e10 100644
--- a/test/orm/test_defaults.py
+++ b/test/orm/test_defaults.py
@@ -1,11 +1,10 @@
-
import sqlalchemy as sa
from sqlalchemy import Integer, String, ForeignKey, event
-from test.lib import testing
-from test.lib.schema import Table, Column
+from sqlalchemy import testing
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.orm import mapper, relationship, create_session
-from test.lib import fixtures
-from test.lib.testing import eq_
+from sqlalchemy.testing import fixtures
+from sqlalchemy.testing import eq_
class TriggerDefaultsTest(fixtures.MappedTest):
diff --git a/test/orm/test_deprecations.py b/test/orm/test_deprecations.py
index e6222d167..95fa9dd29 100644
--- a/test/orm/test_deprecations.py
+++ b/test/orm/test_deprecations.py
@@ -5,12 +5,12 @@ modern (i.e. not deprecated) alternative to them. The tests snippets here can
be migrated directly to the wiki, docs, etc.
"""
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy import Integer, String, ForeignKey, func
-from test.lib.schema import Table
-from test.lib.schema import Column
+from sqlalchemy.testing.schema import Table
+from sqlalchemy.testing.schema import Column
from sqlalchemy.orm import mapper, relationship, relation, create_session, sessionmaker
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
class QueryAlternativesTest(fixtures.MappedTest):
diff --git a/test/orm/test_descriptor.py b/test/orm/test_descriptor.py
index b8b876794..2134d87b2 100644
--- a/test/orm/test_descriptor.py
+++ b/test/orm/test_descriptor.py
@@ -5,8 +5,8 @@ from sqlalchemy.sql import column
from sqlalchemy import Column, Integer, func, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.util import partial
-from test.lib import fixtures
-from test.lib.testing import eq_
+from sqlalchemy.testing import fixtures
+from sqlalchemy.testing import eq_
class TestDescriptor(descriptor_props.DescriptorProperty):
def __init__(self, cls, key, descriptor=None, doc=None,
diff --git a/test/orm/test_dynamic.py b/test/orm/test_dynamic.py
index fd8793778..3c4ad4b11 100644
--- a/test/orm/test_dynamic.py
+++ b/test/orm/test_dynamic.py
@@ -1,13 +1,13 @@
-from test.lib.testing import eq_, ne_
+from sqlalchemy.testing import eq_, ne_
import operator
from sqlalchemy.orm import dynamic_loader, backref, configure_mappers
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy import Integer, String, ForeignKey, desc, select, func, exc
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.orm import mapper, relationship, create_session, Query, attributes, exc as orm_exc
from sqlalchemy.orm.dynamic import AppenderMixin
-from test.lib.testing import eq_, AssertsCompiledSQL, assert_raises_message, assert_raises
-from test.lib import fixtures
+from sqlalchemy.testing import eq_, AssertsCompiledSQL, assert_raises_message, assert_raises
+from sqlalchemy.testing import fixtures
from test.orm import _fixtures
diff --git a/test/orm/test_eager_relations.py b/test/orm/test_eager_relations.py
index 4ef55293b..664ddb8e3 100644
--- a/test/orm/test_eager_relations.py
+++ b/test/orm/test_eager_relations.py
@@ -1,20 +1,20 @@
"""tests of joined-eager loaded attributes"""
-from test.lib.testing import eq_, is_, is_not_
+from sqlalchemy.testing import eq_, is_, is_not_
import sqlalchemy as sa
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy.orm import joinedload, deferred, undefer, \
joinedload_all, backref, eagerload, Session, immediateload
from sqlalchemy import Integer, String, Date, ForeignKey, and_, select, \
func
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.orm import mapper, relationship, create_session, \
lazyload, aliased, column_property
from sqlalchemy.sql import operators
-from test.lib.testing import eq_, assert_raises, \
+from sqlalchemy.testing import eq_, assert_raises, \
assert_raises_message
-from test.lib.assertsql import CompiledSQL
-from test.lib import fixtures
+from sqlalchemy.testing.assertsql import CompiledSQL
+from sqlalchemy.testing import fixtures
from test.orm import _fixtures
from sqlalchemy.util import OrderedDict as odict
import datetime
diff --git a/test/orm/test_evaluator.py b/test/orm/test_evaluator.py
index f632561f1..4678100eb 100644
--- a/test/orm/test_evaluator.py
+++ b/test/orm/test_evaluator.py
@@ -1,12 +1,12 @@
"""Evluating SQL expressions on ORM objects"""
import sqlalchemy as sa
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy import String, Integer, select
-from test.lib.schema import Table
-from test.lib.schema import Column
+from sqlalchemy.testing.schema import Table
+from sqlalchemy.testing.schema import Column
from sqlalchemy.orm import mapper, create_session
-from test.lib.testing import eq_
-from test.lib import fixtures
+from sqlalchemy.testing import eq_
+from sqlalchemy.testing import fixtures
from sqlalchemy import and_, or_, not_
from sqlalchemy.orm import evaluator
diff --git a/test/orm/test_events.py b/test/orm/test_events.py
index e49a4a6a7..d8bef66d3 100644
--- a/test/orm/test_events.py
+++ b/test/orm/test_events.py
@@ -1,15 +1,15 @@
-from test.lib.testing import assert_raises_message, assert_raises
+from sqlalchemy.testing import assert_raises_message, assert_raises
import sqlalchemy as sa
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy import Integer, String
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.orm import mapper, relationship, \
create_session, class_mapper, \
Mapper, column_property, \
Session, sessionmaker, attributes
from sqlalchemy.orm.instrumentation import ClassManager
-from test.lib.testing import eq_
-from test.lib import fixtures
+from sqlalchemy.testing import eq_
+from sqlalchemy.testing import fixtures
from test.orm import _fixtures
from sqlalchemy import event
diff --git a/test/orm/test_expire.py b/test/orm/test_expire.py
index 16ca8b0ba..0b1350e0a 100644
--- a/test/orm/test_expire.py
+++ b/test/orm/test_expire.py
@@ -1,16 +1,16 @@
"""Attribute/instance expiration, deferral of attributes, etc."""
-from test.lib.testing import eq_, assert_raises, assert_raises_message
-from test.lib.util import gc_collect
+from sqlalchemy.testing import eq_, assert_raises, assert_raises_message
+from sqlalchemy.testing.util import gc_collect
import sqlalchemy as sa
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy import Integer, String, ForeignKey, exc as sa_exc
-from test.lib.schema import Table
-from test.lib.schema import Column
+from sqlalchemy.testing.schema import Table
+from sqlalchemy.testing.schema import Column
from sqlalchemy.orm import mapper, relationship, create_session, \
attributes, deferred, exc as orm_exc, defer, undefer,\
strategies, state, lazyload, backref, Session
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
from test.orm import _fixtures
diff --git a/test/orm/test_froms.py b/test/orm/test_froms.py
index f70f08470..05a017bb9 100644
--- a/test/orm/test_froms.py
+++ b/test/orm/test_froms.py
@@ -1,4 +1,4 @@
-from test.lib.testing import eq_, assert_raises, assert_raises_message
+from sqlalchemy.testing import eq_, assert_raises, assert_raises_message
import operator
from sqlalchemy import *
from sqlalchemy import exc as sa_exc, util
@@ -7,14 +7,15 @@ from sqlalchemy.engine import default
from sqlalchemy.orm import *
from sqlalchemy.orm import attributes
-from test.lib.testing import eq_
+from sqlalchemy.testing import eq_
import sqlalchemy as sa
-from test.lib import testing, AssertsCompiledSQL, Column, engines
+from sqlalchemy import testing
+from sqlalchemy.testing import AssertsCompiledSQL, Column, engines
from test.orm import _fixtures
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
from sqlalchemy.orm.util import join, outerjoin, with_parent
diff --git a/test/orm/test_generative.py b/test/orm/test_generative.py
index de3de3d63..3f5da69c3 100644
--- a/test/orm/test_generative.py
+++ b/test/orm/test_generative.py
@@ -1,12 +1,12 @@
-from test.lib.testing import eq_
+from sqlalchemy.testing import eq_
import sqlalchemy as sa
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy import Integer, String, ForeignKey, MetaData, func
-from test.lib.schema import Table
-from test.lib.schema import Column
+from sqlalchemy.testing.schema import Table
+from sqlalchemy.testing.schema import Column
from sqlalchemy.orm import mapper, relationship, create_session
-from test.lib.testing import eq_
-from test.lib import fixtures
+from sqlalchemy.testing import eq_
+from sqlalchemy.testing import fixtures
from test.orm import _fixtures
diff --git a/test/orm/test_hasparent.py b/test/orm/test_hasparent.py
index b9d1cb15a..fd246b527 100644
--- a/test/orm/test_hasparent.py
+++ b/test/orm/test_hasparent.py
@@ -1,18 +1,18 @@
"""test the current state of the hasparent() flag."""
-from test.lib.testing import assert_raises, assert_raises_message
+from sqlalchemy.testing import assert_raises, assert_raises_message
from sqlalchemy import Integer, String, ForeignKey, Sequence, \
exc as sa_exc
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.orm import mapper, relationship, create_session, \
sessionmaker, class_mapper, backref, Session
from sqlalchemy.orm import attributes, exc as orm_exc
-from test.lib import testing
-from test.lib.testing import eq_
-from test.lib import fixtures
+from sqlalchemy import testing
+from sqlalchemy.testing import eq_
+from sqlalchemy.testing import fixtures
from test.orm import _fixtures
-from test.lib.util import gc_collect
+from sqlalchemy.testing.util import gc_collect
class ParentRemovalTest(fixtures.MappedTest):
diff --git a/test/orm/test_immediate_load.py b/test/orm/test_immediate_load.py
index e809ebfe6..38dec75bd 100644
--- a/test/orm/test_immediate_load.py
+++ b/test/orm/test_immediate_load.py
@@ -1,8 +1,8 @@
"""basic tests of lazy loaded attributes"""
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy.orm import mapper, relationship, create_session, immediateload
-from test.lib.testing import eq_
+from sqlalchemy.testing import eq_
from test.orm import _fixtures
diff --git a/test/orm/test_inspect.py b/test/orm/test_inspect.py
index bd43e43d6..f504ad16e 100644
--- a/test/orm/test_inspect.py
+++ b/test/orm/test_inspect.py
@@ -1,12 +1,12 @@
"""test the inspection registry system."""
-from test.lib.testing import eq_, assert_raises_message, is_
+from sqlalchemy.testing import eq_, assert_raises_message, is_
from sqlalchemy import exc, util
from sqlalchemy import inspect
from test.orm import _fixtures
from sqlalchemy.orm import class_mapper, synonym, Session, aliased
from sqlalchemy.orm.attributes import instance_state, NO_VALUE
-from test.lib import testing
+from sqlalchemy import testing
class TestORMInspection(_fixtures.FixtureTest):
@classmethod
diff --git a/test/orm/test_instrumentation.py b/test/orm/test_instrumentation.py
index d2388856f..01b678fac 100644
--- a/test/orm/test_instrumentation.py
+++ b/test/orm/test_instrumentation.py
@@ -1,13 +1,13 @@
-from test.lib.testing import assert_raises, assert_raises_message
+from sqlalchemy.testing import assert_raises, assert_raises_message
import sqlalchemy as sa
from sqlalchemy import MetaData, Integer, ForeignKey, util, event
from sqlalchemy.orm import mapper, relationship, create_session, \
attributes, class_mapper, clear_mappers, instrumentation, events
-from test.lib.schema import Table
-from test.lib.schema import Column
-from test.lib.testing import eq_, ne_
-from test.lib import fixtures, testing
+from sqlalchemy.testing.schema import Table
+from sqlalchemy.testing.schema import Column
+from sqlalchemy.testing import eq_, ne_
+from sqlalchemy.testing import fixtures, testing
class InitTest(fixtures.ORMTest):
diff --git a/test/orm/test_joins.py b/test/orm/test_joins.py
index 086897186..358c3ae8d 100644
--- a/test/orm/test_joins.py
+++ b/test/orm/test_joins.py
@@ -1,4 +1,4 @@
-from test.lib.testing import eq_, assert_raises, assert_raises_message
+from sqlalchemy.testing import eq_, assert_raises, assert_raises_message
import operator
from sqlalchemy import *
from sqlalchemy import exc as sa_exc, util
@@ -7,14 +7,14 @@ from sqlalchemy.engine import default
from sqlalchemy.orm import *
from sqlalchemy.orm import attributes
-from test.lib.testing import eq_
+from sqlalchemy.testing import eq_
import sqlalchemy as sa
-from test.lib import testing, AssertsCompiledSQL, Column, engines
-
+from sqlalchemy import testing
+from sqlalchemy.testing import AssertsCompiledSQL, Column, engines
from test.orm import _fixtures
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
from sqlalchemy.orm.util import join, outerjoin, with_parent
diff --git a/test/orm/test_lazy_relations.py b/test/orm/test_lazy_relations.py
index 297d027f5..66b1eb5e4 100644
--- a/test/orm/test_lazy_relations.py
+++ b/test/orm/test_lazy_relations.py
@@ -1,18 +1,18 @@
"""basic tests of lazy loaded attributes"""
-from test.lib.testing import assert_raises, assert_raises_message
+from sqlalchemy.testing import assert_raises, assert_raises_message
import datetime
from sqlalchemy import exc as sa_exc
from sqlalchemy.orm import attributes, exc as orm_exc
import sqlalchemy as sa
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy import Integer, String, ForeignKey, SmallInteger
from sqlalchemy.types import TypeDecorator
-from test.lib.schema import Table
-from test.lib.schema import Column
+from sqlalchemy.testing.schema import Table
+from sqlalchemy.testing.schema import Column
from sqlalchemy.orm import mapper, relationship, create_session
-from test.lib.testing import eq_
-from test.lib import fixtures
+from sqlalchemy.testing import eq_
+from sqlalchemy.testing import fixtures
from test.orm import _fixtures
diff --git a/test/orm/test_load_on_fks.py b/test/orm/test_load_on_fks.py
index 05b78ccb8..813d8d17a 100644
--- a/test/orm/test_load_on_fks.py
+++ b/test/orm/test_load_on_fks.py
@@ -2,12 +2,12 @@ from sqlalchemy import *
from sqlalchemy.orm import *
from sqlalchemy.ext.declarative import declarative_base
-from test.lib.testing import eq_, AssertsExecutionResults, assert_raises
-from test.lib import testing
-from test.lib import fixtures
+from sqlalchemy.testing import eq_, AssertsExecutionResults, assert_raises
+from sqlalchemy import testing
+from sqlalchemy.testing import fixtures
from sqlalchemy.orm.attributes import instance_state
from sqlalchemy.orm.exc import FlushError
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
engine = testing.db
diff --git a/test/orm/test_lockmode.py b/test/orm/test_lockmode.py
index b2bc60865..0fe82f394 100644
--- a/test/orm/test_lockmode.py
+++ b/test/orm/test_lockmode.py
@@ -2,8 +2,8 @@ from sqlalchemy.engine import default
from sqlalchemy.databases import *
from sqlalchemy.orm import mapper
from sqlalchemy.orm import Session
-from test.lib import AssertsCompiledSQL
-from test.lib.testing import assert_raises_message
+from sqlalchemy.testing import AssertsCompiledSQL
+from sqlalchemy.testing import assert_raises_message
from test.orm import _fixtures
diff --git a/test/orm/test_manytomany.py b/test/orm/test_manytomany.py
index ed9075833..ca9c3c095 100644
--- a/test/orm/test_manytomany.py
+++ b/test/orm/test_manytomany.py
@@ -1,13 +1,13 @@
-from test.lib.testing import assert_raises, \
+from sqlalchemy.testing import assert_raises, \
assert_raises_message, eq_
import sqlalchemy as sa
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy import Integer, String, ForeignKey
-from test.lib.schema import Table
-from test.lib.schema import Column
+from sqlalchemy.testing.schema import Table
+from sqlalchemy.testing.schema import Column
from sqlalchemy.orm import mapper, relationship, create_session, \
exc as orm_exc, sessionmaker
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
class M2MTest(fixtures.MappedTest):
diff --git a/test/orm/test_mapper.py b/test/orm/test_mapper.py
index 487ec066f..b2e36b273 100644
--- a/test/orm/test_mapper.py
+++ b/test/orm/test_mapper.py
@@ -1,10 +1,10 @@
"""General mapper operations with an emphasis on selecting/loading."""
-from test.lib.testing import assert_raises, assert_raises_message
+from sqlalchemy.testing import assert_raises, assert_raises_message
import sqlalchemy as sa
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy import MetaData, Integer, String, ForeignKey, func, util
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.engine import default
from sqlalchemy.orm import mapper, relationship, backref, \
create_session, class_mapper, configure_mappers, reconstructor, \
@@ -12,10 +12,10 @@ from sqlalchemy.orm import mapper, relationship, backref, \
column_property, composite, dynamic_loader, \
comparable_property, Session
from sqlalchemy.orm.persistence import _sort_states
-from test.lib.testing import eq_, AssertsCompiledSQL, is_
-from test.lib import fixtures
+from sqlalchemy.testing import eq_, AssertsCompiledSQL, is_
+from sqlalchemy.testing import fixtures
from test.orm import _fixtures
-from test.lib.assertsql import CompiledSQL
+from sqlalchemy.testing.assertsql import CompiledSQL
import logging
class MapperTest(_fixtures.FixtureTest, AssertsCompiledSQL):
diff --git a/test/orm/test_merge.py b/test/orm/test_merge.py
index 47203b874..e1474f39b 100644
--- a/test/orm/test_merge.py
+++ b/test/orm/test_merge.py
@@ -1,19 +1,19 @@
-from test.lib.testing import assert_raises, assert_raises_message
+from sqlalchemy.testing import assert_raises, assert_raises_message
import sqlalchemy as sa
from sqlalchemy import Integer, PickleType, String, ForeignKey
import operator
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy.util import OrderedSet
from sqlalchemy.orm import mapper, relationship, create_session, \
PropComparator, synonym, comparable_property, sessionmaker, \
attributes, Session, backref, configure_mappers
from sqlalchemy.orm.collections import attribute_mapped_collection
from sqlalchemy.orm.interfaces import MapperOption
-from test.lib.testing import eq_, ne_
-from test.lib import fixtures
+from sqlalchemy.testing import eq_, ne_
+from sqlalchemy.testing import fixtures
from test.orm import _fixtures
from sqlalchemy import event, and_, case
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
class MergeTest(_fixtures.FixtureTest):
"""Session.merge() functionality"""
diff --git a/test/orm/test_naturalpks.py b/test/orm/test_naturalpks.py
index 0592b1e10..9ad54fd10 100644
--- a/test/orm/test_naturalpks.py
+++ b/test/orm/test_naturalpks.py
@@ -3,16 +3,16 @@ Primary key changing capabilities and passive/non-passive cascading updates.
"""
from __future__ import with_statement
-from test.lib.testing import eq_, ne_, \
+from sqlalchemy.testing import eq_, ne_, \
assert_raises, assert_raises_message
import sqlalchemy as sa
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy import Integer, String, ForeignKey, Unicode
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.orm import mapper, relationship, create_session, backref, Session
from sqlalchemy.orm.session import make_transient
-from test.lib.testing import eq_
-from test.lib import fixtures
+from sqlalchemy.testing import eq_
+from sqlalchemy.testing import fixtures
from test.orm import _fixtures
class NaturalPKTest(fixtures.MappedTest):
@@ -965,7 +965,7 @@ class CascadeToFKPKTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
sess.add(u2)
sess.add(a2)
- from test.lib.assertsql import CompiledSQL
+ from sqlalchemy.testing.assertsql import CompiledSQL
# test that the primary key columns of addresses are not
# being updated as well, since this is a row switch.
diff --git a/test/orm/test_of_type.py b/test/orm/test_of_type.py
index 40d553fe8..28bcc6e81 100644
--- a/test/orm/test_of_type.py
+++ b/test/orm/test_of_type.py
@@ -2,11 +2,12 @@ from sqlalchemy.orm import Session, aliased, with_polymorphic, \
contains_eager, joinedload, subqueryload, relationship,\
subqueryload_all, joinedload_all
from sqlalchemy import and_
-from test.lib import testing, fixtures
-from test.lib.testing import assert_raises, eq_
-from test.lib.schema import Column
+from sqlalchemy import testing
+from sqlalchemy.testing import fixtures
+from sqlalchemy.testing import assert_raises, eq_
+from sqlalchemy.testing.schema import Column
from sqlalchemy.engine import default
-from test.lib.entities import ComparableEntity
+from sqlalchemy.testing.entities import ComparableEntity
from sqlalchemy import Integer, String, ForeignKey
from .inheritance._poly_fixtures import Company, Person, Engineer, Manager, Boss, \
Machine, Paperwork, _PolymorphicFixtureBase, _Polymorphic,\
diff --git a/test/orm/test_onetoone.py b/test/orm/test_onetoone.py
index 09dc379b8..19b13c4dd 100644
--- a/test/orm/test_onetoone.py
+++ b/test/orm/test_onetoone.py
@@ -1,9 +1,9 @@
import sqlalchemy as sa
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy import Integer, String, ForeignKey
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.orm import mapper, relationship, create_session
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
class O2OTest(fixtures.MappedTest):
diff --git a/test/orm/test_pickled.py b/test/orm/test_pickled.py
index 88867edcb..d70d36b59 100644
--- a/test/orm/test_pickled.py
+++ b/test/orm/test_pickled.py
@@ -1,11 +1,11 @@
-from test.lib.testing import eq_
+from sqlalchemy.testing import eq_
from sqlalchemy.util import pickle
import sqlalchemy as sa
-from test.lib import testing
-from test.lib.util import picklers
-from test.lib.testing import assert_raises_message
+from sqlalchemy import testing
+from sqlalchemy.testing.util import picklers
+from sqlalchemy.testing import assert_raises_message
from sqlalchemy import Integer, String, ForeignKey, exc, MetaData
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.orm import mapper, relationship, create_session, \
sessionmaker, attributes, interfaces,\
clear_mappers, exc as orm_exc,\
@@ -13,9 +13,9 @@ from sqlalchemy.orm import mapper, relationship, create_session, \
lazyload, aliased
from sqlalchemy.orm.collections import attribute_mapped_collection, \
column_mapped_collection
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
from test.orm import _fixtures
-from test.lib.pickleable import User, Address, Dingaling, Order, \
+from sqlalchemy.testing.pickleable import User, Address, Dingaling, Order, \
Child1, Child2, Parent, Screen, EmailUser
@@ -87,7 +87,7 @@ class PickleTest(fixtures.MappedTest):
assert_raises_message(
orm_exc.UnmappedInstanceError,
- "Cannot deserialize object of type <class 'test.lib.pickleable.User'> - no mapper()",
+ "Cannot deserialize object of type <class 'sqlalchemy.testing.pickleable.User'> - no mapper()",
pickle.loads, u1_pickled)
def test_no_instrumentation(self):
diff --git a/test/orm/test_query.py b/test/orm/test_query.py
index 38739afff..56275a735 100644
--- a/test/orm/test_query.py
+++ b/test/orm/test_query.py
@@ -1,4 +1,3 @@
-from test.lib.testing import eq_, assert_raises, assert_raises_message
import operator
from sqlalchemy import MetaData, null, exists, text, union, literal, \
literal_column, func, between, Unicode, desc, and_, bindparam, \
@@ -11,14 +10,14 @@ from sqlalchemy.orm import attributes, mapper, relationship, backref, \
configure_mappers, create_session, synonym, Session, class_mapper, \
aliased, column_property, joinedload_all, joinedload, Query,\
util as orm_util
-from test.lib.assertsql import CompiledSQL
-from test.lib.testing import eq_
-from test.lib.schema import Table, Column
-
+from sqlalchemy.testing.assertsql import CompiledSQL
+from sqlalchemy.testing.schema import Table, Column
import sqlalchemy as sa
-from test.lib import testing, AssertsCompiledSQL, engines
+from sqlalchemy import testing
+from sqlalchemy.testing.assertions import eq_, assert_raises, assert_raises_message
+from sqlalchemy.testing import AssertsCompiledSQL
from test.orm import _fixtures
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures, engines
from sqlalchemy.orm.util import join, outerjoin, with_parent
diff --git a/test/orm/test_rel_fn.py b/test/orm/test_rel_fn.py
index f5fa1d4c9..f23d40be7 100644
--- a/test/orm/test_rel_fn.py
+++ b/test/orm/test_rel_fn.py
@@ -1,6 +1,6 @@
-from test.lib.testing import assert_raises, assert_raises_message, eq_, \
+from sqlalchemy.testing import assert_raises, assert_raises_message, eq_, \
AssertsCompiledSQL, is_
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
from sqlalchemy.orm import relationships, foreign, remote, remote_foreign
from sqlalchemy import MetaData, Table, Column, ForeignKey, Integer, \
select, ForeignKeyConstraint, exc, func, and_
diff --git a/test/orm/test_relationships.py b/test/orm/test_relationships.py
index 394a1fe7a..a2a81d0ee 100644
--- a/test/orm/test_relationships.py
+++ b/test/orm/test_relationships.py
@@ -1,17 +1,17 @@
-from test.lib.testing import assert_raises, assert_raises_message
+from sqlalchemy.testing import assert_raises, assert_raises_message
import datetime
import sqlalchemy as sa
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy import Integer, String, ForeignKey, MetaData, and_
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.orm import mapper, relationship, relation, \
backref, create_session, configure_mappers, \
clear_mappers, sessionmaker, attributes,\
Session, composite, column_property, foreign,\
remote
from sqlalchemy.orm.interfaces import ONETOMANY, MANYTOONE, MANYTOMANY
-from test.lib.testing import eq_, startswith_, AssertsCompiledSQL, is_
-from test.lib import fixtures
+from sqlalchemy.testing import eq_, startswith_, AssertsCompiledSQL, is_
+from sqlalchemy.testing import fixtures
from test.orm import _fixtures
from sqlalchemy import exc
diff --git a/test/orm/test_scoping.py b/test/orm/test_scoping.py
index 978a8bc1d..87557a162 100644
--- a/test/orm/test_scoping.py
+++ b/test/orm/test_scoping.py
@@ -1,12 +1,12 @@
-from test.lib.testing import assert_raises, assert_raises_message
+from sqlalchemy.testing import assert_raises, assert_raises_message
import sqlalchemy as sa
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy.orm import scoped_session
from sqlalchemy import Integer, String, ForeignKey
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.orm import mapper, relationship, query
-from test.lib.testing import eq_
-from test.lib import fixtures
+from sqlalchemy.testing import eq_
+from sqlalchemy.testing import fixtures
diff --git a/test/orm/test_selectable.py b/test/orm/test_selectable.py
index 1a46e3b6d..42347213e 100644
--- a/test/orm/test_selectable.py
+++ b/test/orm/test_selectable.py
@@ -1,12 +1,12 @@
"""Generic mapping to Select statements"""
-from test.lib.testing import assert_raises, assert_raises_message
+from sqlalchemy.testing import assert_raises, assert_raises_message
import sqlalchemy as sa
-from test.lib import testing
+from sqlalchemy import testing
from sqlalchemy import String, Integer, select
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.orm import mapper, Session
-from test.lib.testing import eq_, AssertsCompiledSQL
-from test.lib import fixtures
+from sqlalchemy.testing import eq_, AssertsCompiledSQL
+from sqlalchemy.testing import fixtures
diff --git a/test/orm/test_session.py b/test/orm/test_session.py
index 28293675d..61fed6d18 100644
--- a/test/orm/test_session.py
+++ b/test/orm/test_session.py
@@ -1,20 +1,20 @@
-from test.lib.testing import eq_, assert_raises, \
+from sqlalchemy.testing import eq_, assert_raises, \
assert_raises_message, assert_warnings
-from test.lib.util import gc_collect
-from test.lib import pickleable
+from sqlalchemy.testing.util import gc_collect
+from sqlalchemy.testing import pickleable
from sqlalchemy.util import pickle
import inspect
from sqlalchemy.orm import create_session, sessionmaker, attributes, \
make_transient, Session
import sqlalchemy as sa
-from test.lib import engines, testing, config
+from sqlalchemy.testing import engines, testing, config
from sqlalchemy import Integer, String, Sequence
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.orm import mapper, relationship, backref, joinedload, \
exc as orm_exc, object_session
from sqlalchemy.util import pypy
-from test.lib import fixtures
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
+from sqlalchemy.testing import fixtures
from test.orm import _fixtures
class SessionTest(_fixtures.FixtureTest):
diff --git a/test/orm/test_subquery_relations.py b/test/orm/test_subquery_relations.py
index 8d7c89044..f6e2299b4 100644
--- a/test/orm/test_subquery_relations.py
+++ b/test/orm/test_subquery_relations.py
@@ -1,15 +1,15 @@
-from test.lib.testing import eq_, is_, is_not_
-from test.lib import testing
-from test.lib.schema import Table, Column
+from sqlalchemy.testing import eq_, is_, is_not_
+from sqlalchemy import testing
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy import Integer, String, ForeignKey, bindparam, inspect
from sqlalchemy.orm import backref, subqueryload, subqueryload_all, \
mapper, relationship, clear_mappers, create_session, lazyload, \
aliased, joinedload, deferred, undefer, eagerload_all,\
Session
-from test.lib.testing import eq_, assert_raises, \
+from sqlalchemy.testing import eq_, assert_raises, \
assert_raises_message
-from test.lib.assertsql import CompiledSQL
-from test.lib import fixtures
+from sqlalchemy.testing.assertsql import CompiledSQL
+from sqlalchemy.testing import fixtures
from test.orm import _fixtures
import sqlalchemy as sa
diff --git a/test/orm/test_sync.py b/test/orm/test_sync.py
index 9134e47ce..a2c894725 100644
--- a/test/orm/test_sync.py
+++ b/test/orm/test_sync.py
@@ -1,8 +1,8 @@
-from test.lib.testing import eq_, assert_raises, assert_raises_message
-from test.lib import testing
-from test.lib.schema import Table, Column
+from sqlalchemy.testing import eq_, assert_raises, assert_raises_message
+from sqlalchemy import testing
+from sqlalchemy.testing.schema import Table, Column
from test.orm import _fixtures
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
from sqlalchemy import Integer, String, ForeignKey, func
from sqlalchemy.orm import mapper, relationship, backref, \
create_session, unitofwork, attributes,\
diff --git a/test/orm/test_transaction.py b/test/orm/test_transaction.py
index fdbf6ae1f..d2b8b8b85 100644
--- a/test/orm/test_transaction.py
+++ b/test/orm/test_transaction.py
@@ -1,15 +1,15 @@
-from test.lib.testing import eq_, assert_raises, \
+from sqlalchemy.testing import eq_, assert_raises, \
assert_raises_message, assert_warnings
from sqlalchemy import *
from sqlalchemy.orm import attributes
from sqlalchemy import exc as sa_exc, event
from sqlalchemy.orm import exc as orm_exc
from sqlalchemy.orm import *
-from test.lib.util import gc_collect
-from test.lib import testing
-from test.lib import fixtures
-from test.lib import engines
+from sqlalchemy.testing.util import gc_collect
+from sqlalchemy import testing
+from sqlalchemy.testing import fixtures
+from sqlalchemy.testing import engines
from test.orm._fixtures import FixtureTest
diff --git a/test/orm/test_unitofwork.py b/test/orm/test_unitofwork.py
index 9691c38a6..8f354b083 100644
--- a/test/orm/test_unitofwork.py
+++ b/test/orm/test_unitofwork.py
@@ -1,25 +1,25 @@
# coding: utf-8
"""Tests unitofwork operations."""
-from test.lib.testing import eq_, assert_raises, assert_raises_message
+from sqlalchemy.testing import eq_, assert_raises, assert_raises_message
import datetime
import operator
from sqlalchemy.orm import mapper as orm_mapper
import sqlalchemy as sa
from sqlalchemy import Integer, String, ForeignKey, literal_column, event
-from test.lib import engines, testing, pickleable
-from test.lib.schema import Table
-from test.lib.schema import Column
+from sqlalchemy.testing import engines, testing, pickleable
+from sqlalchemy.testing.schema import Table
+from sqlalchemy.testing.schema import Column
from sqlalchemy.orm import mapper, relationship, create_session, \
column_property, attributes, Session, reconstructor, object_session,\
exc as orm_exc
-from test.lib.testing import eq_, ne_
-from test.lib.util import gc_collect
-from test.lib import fixtures
+from sqlalchemy.testing import eq_, ne_
+from sqlalchemy.testing.util import gc_collect
+from sqlalchemy.testing import fixtures
from test.orm import _fixtures
-from test.lib import fixtures
-from test.lib.assertsql import AllOf, CompiledSQL
+from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.assertsql import AllOf, CompiledSQL
import gc
class UnitOfWorkTest(object):
diff --git a/test/orm/test_unitofworkv2.py b/test/orm/test_unitofworkv2.py
index 860fffdf5..7c7337c62 100644
--- a/test/orm/test_unitofworkv2.py
+++ b/test/orm/test_unitofworkv2.py
@@ -1,14 +1,15 @@
-from test.lib.testing import eq_, assert_raises, assert_raises_message
-from test.lib import testing, engines
-from test.lib.schema import Table, Column
+from sqlalchemy.testing import eq_, assert_raises, assert_raises_message
+from sqlalchemy import testing
+from sqlalchemy.testing import engines
+from sqlalchemy.testing.schema import Table, Column
from test.orm import _fixtures
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
from sqlalchemy import Integer, String, ForeignKey, func
from sqlalchemy.orm import mapper, relationship, backref, \
create_session, unitofwork, attributes,\
Session, class_mapper, sync, exc as orm_exc
-from test.lib.assertsql import AllOf, CompiledSQL
+from sqlalchemy.testing.assertsql import AllOf, CompiledSQL
class AssertsUOW(object):
def _get_test_uow(self, session):
diff --git a/test/orm/test_update_delete.py b/test/orm/test_update_delete.py
index e259c5229..85b880710 100644
--- a/test/orm/test_update_delete.py
+++ b/test/orm/test_update_delete.py
@@ -1,9 +1,9 @@
-from test.lib.testing import eq_, assert_raises, assert_raises_message
-from test.lib import fixtures, testing
+from sqlalchemy.testing import eq_, assert_raises, assert_raises_message
+from sqlalchemy.testing import fixtures, testing
from sqlalchemy import Integer, String, ForeignKey, or_, and_, exc, select, func
from sqlalchemy.orm import mapper, relationship, backref, Session, joinedload
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
diff --git a/test/orm/test_utils.py b/test/orm/test_utils.py
index 617f1d538..00fbe7771 100644
--- a/test/orm/test_utils.py
+++ b/test/orm/test_utils.py
@@ -1,4 +1,4 @@
-from test.lib.testing import assert_raises, assert_raises_message
+from sqlalchemy.testing import assert_raises, assert_raises_message
from sqlalchemy.orm import interfaces, util
from sqlalchemy import Column
from sqlalchemy import Integer
@@ -6,10 +6,10 @@ from sqlalchemy import MetaData
from sqlalchemy import Table
from sqlalchemy.orm import aliased
from sqlalchemy.orm import mapper, create_session
-from test.lib import testing
-from test.lib import fixtures
+from sqlalchemy import testing
+from sqlalchemy.testing import fixtures
from test.orm import _fixtures
-from test.lib.testing import eq_
+from sqlalchemy.testing import eq_
class AliasedClassTest(fixtures.TestBase):
diff --git a/test/orm/test_versioning.py b/test/orm/test_versioning.py
index 0faeb133d..aa1e99602 100644
--- a/test/orm/test_versioning.py
+++ b/test/orm/test_versioning.py
@@ -1,16 +1,16 @@
import datetime
import sqlalchemy as sa
-from test.lib import engines, testing
+from sqlalchemy.testing import engines, testing
from sqlalchemy import Integer, String, Date, ForeignKey, literal_column, \
orm, exc, select, TypeDecorator
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.orm import mapper, relationship, Session, \
create_session, column_property, sessionmaker,\
exc as orm_exc
-from test.lib.testing import eq_, ne_, assert_raises, assert_raises_message
-from test.lib import fixtures
+from sqlalchemy.testing import eq_, ne_, assert_raises, assert_raises_message
+from sqlalchemy.testing import fixtures
from test.orm import _fixtures
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
_uuids = [
diff --git a/test/perf/insertspeed.py b/test/perf/insertspeed.py
index 9b397771d..03d2c4144 100644
--- a/test/perf/insertspeed.py
+++ b/test/perf/insertspeed.py
@@ -1,7 +1,7 @@
import sys, time
from sqlalchemy import *
from sqlalchemy.orm import *
-from test.lib import profiling
+from sqlalchemy.testing import profiling
db = create_engine('sqlite://')
metadata = MetaData(db)
diff --git a/test/perf/large_flush.py b/test/perf/large_flush.py
index b23de080c..b1ecce852 100644
--- a/test/perf/large_flush.py
+++ b/test/perf/large_flush.py
@@ -3,7 +3,7 @@ from sqlalchemy import create_engine, MetaData, orm
from sqlalchemy import Column, ForeignKey
from sqlalchemy import Integer, String
from sqlalchemy.orm import mapper
-from test.lib import profiling
+from sqlalchemy.testing import profiling
class Object(object):
pass
diff --git a/test/perf/objselectspeed.py b/test/perf/objselectspeed.py
index f64c73c69..c0ed88444 100644
--- a/test/perf/objselectspeed.py
+++ b/test/perf/objselectspeed.py
@@ -1,8 +1,8 @@
import time, resource
from sqlalchemy import *
from sqlalchemy.orm import *
-from test.lib.util import gc_collect
-from test.lib import profiling
+from sqlalchemy.testing.util import gc_collect
+from sqlalchemy.testing import profiling
db = create_engine('sqlite://')
metadata = MetaData(db)
diff --git a/test/perf/objupdatespeed.py b/test/perf/objupdatespeed.py
index 078d95fa3..98d10180e 100644
--- a/test/perf/objupdatespeed.py
+++ b/test/perf/objupdatespeed.py
@@ -1,8 +1,8 @@
import time, resource
from sqlalchemy import *
from sqlalchemy.orm import *
-from test.lib import *
-from test.lib.util import gc_collect
+from sqlalchemy.testing import *
+from sqlalchemy.testing.util import gc_collect
NUM = 100
diff --git a/test/perf/ormsession.py b/test/perf/ormsession.py
index aff265ff1..5e38d6e80 100644
--- a/test/perf/ormsession.py
+++ b/test/perf/ormsession.py
@@ -3,8 +3,8 @@ from datetime import datetime
from sqlalchemy import *
from sqlalchemy.orm import *
-from test.lib import *
-from test.lib.profiling import profiled
+from sqlalchemy.testing import *
+from sqlalchemy.testing.profiling import profiled
class Item(object):
def __repr__(self):
diff --git a/test/perf/sessions.py b/test/perf/sessions.py
index 75106f6ca..80553fe48 100644
--- a/test/perf/sessions.py
+++ b/test/perf/sessions.py
@@ -1,8 +1,8 @@
from sqlalchemy import *
from sqlalchemy.orm import *
-from test.lib.compat import gc_collect
-from test.lib import AssertsExecutionResults, profiling, testing
+from sqlalchemy.testing.compat import gc_collect
+from sqlalchemy.testing import AssertsExecutionResults, profiling, testing
from test.orm import _fixtures
# in this test we are specifically looking for time spent in the attributes.InstanceState.__cleanup() method.
diff --git a/test/lib/profiles.txt b/test/profiles.txt
index 5decc3aaa..5decc3aaa 100644
--- a/test/lib/profiles.txt
+++ b/test/profiles.txt
diff --git a/test/lib/requires.py b/test/requirements.py
index 1fff3d7c2..042604935 100644
--- a/test/lib/requires.py
+++ b/test/requirements.py
@@ -5,7 +5,10 @@ target database.
"""
-from .exclusions import \
+from sqlalchemy import util
+import sys
+from sqlalchemy.testing.suite.requirements import SuiteRequirements
+from sqlalchemy.testing.exclusions import \
skip, \
skip_if,\
only_if,\
@@ -22,9 +25,6 @@ def no_support(db, reason):
def exclude(db, op, spec, description=None):
return SpecPredicate(db, op, spec, description=description)
-from sqlalchemy import util
-from ..bootstrap import config
-import sys
crashes = skip
@@ -35,13 +35,7 @@ def _chain_decorators_on(*decorators):
return fn
return decorate
-class Requirements(object):
- def __init__(self, db, config):
- self.db = db
- self.config = config
-
-
-class DefaultRequirements(Requirements):
+class DefaultRequirements(SuiteRequirements):
@property
def deferrable_or_no_constraints(self):
"""Target database must support derferable constraints."""
@@ -451,7 +445,7 @@ class DefaultRequirements(Requirements):
"""
return _chain_decorators_on(
- skip_if(lambda: config.options.low_connections)
+ skip_if(lambda: self.config.options.low_connections)
)
@property
diff --git a/test/sql/test_case_statement.py b/test/sql/test_case_statement.py
index 7b8ae88db..944a15384 100644
--- a/test/sql/test_case_statement.py
+++ b/test/sql/test_case_statement.py
@@ -1,7 +1,8 @@
-from test.lib.testing import assert_raises, assert_raises_message, eq_
+from sqlalchemy.testing import assert_raises, assert_raises_message, eq_
import sys
from sqlalchemy import *
-from test.lib import *
+from sqlalchemy.testing import fixtures, AssertsCompiledSQL
+from sqlalchemy import testing
from sqlalchemy import util, exc
from sqlalchemy.sql import table, column
diff --git a/test/sql/test_compiler.py b/test/sql/test_compiler.py
index 356f2e8b1..3c6e687ca 100644
--- a/test/sql/test_compiler.py
+++ b/test/sql/test_compiler.py
@@ -10,7 +10,9 @@ styling and coherent test organization.
"""
-from test.lib.testing import eq_, is_, assert_raises, assert_raises_message
+from sqlalchemy.testing import eq_, is_, assert_raises, assert_raises_message
+from sqlalchemy import testing
+from sqlalchemy.testing import fixtures, AssertsCompiledSQL
import datetime, re, operator, decimal
from sqlalchemy import *
from sqlalchemy import exc, sql, util, types, schema
@@ -18,7 +20,6 @@ from sqlalchemy.sql import table, column, label, compiler
from sqlalchemy.sql.expression import ClauseList, _literal_as_text, HasPrefixes
from sqlalchemy.engine import default
from sqlalchemy.databases import *
-from test.lib import *
from sqlalchemy.ext.compiler import compiles
table1 = table('mytable',
diff --git a/test/sql/test_constraints.py b/test/sql/test_constraints.py
index 75a7cb2e1..261932a7f 100644
--- a/test/sql/test_constraints.py
+++ b/test/sql/test_constraints.py
@@ -1,11 +1,12 @@
-from test.lib.testing import assert_raises, assert_raises_message
+from sqlalchemy.testing import assert_raises, assert_raises_message
from sqlalchemy import *
from sqlalchemy import exc, schema
-from test.lib import *
-from test.lib import config, engines
+from sqlalchemy.testing import fixtures, AssertsExecutionResults, AssertsCompiledSQL
+from sqlalchemy import testing
+from sqlalchemy.testing import config, engines
from sqlalchemy.engine import ddl
-from test.lib.testing import eq_
-from test.lib.assertsql import AllOf, RegexSQL, ExactSQL, CompiledSQL
+from sqlalchemy.testing import eq_
+from sqlalchemy.testing.assertsql import AllOf, RegexSQL, ExactSQL, CompiledSQL
from sqlalchemy.dialects.postgresql import base as postgresql
class ConstraintTest(fixtures.TestBase, AssertsExecutionResults, AssertsCompiledSQL):
diff --git a/test/sql/test_cte.py b/test/sql/test_cte.py
index 6360e278c..28756873f 100644
--- a/test/sql/test_cte.py
+++ b/test/sql/test_cte.py
@@ -1,5 +1,5 @@
-from test.lib import fixtures
-from test.lib.testing import AssertsCompiledSQL, assert_raises_message
+from sqlalchemy.testing import fixtures
+from sqlalchemy.testing import AssertsCompiledSQL, assert_raises_message
from sqlalchemy.sql import table, column, select, func, literal
from sqlalchemy.dialects import mssql
from sqlalchemy.engine import default
diff --git a/test/sql/test_defaults.py b/test/sql/test_defaults.py
index 55aa86633..1c31314d8 100644
--- a/test/sql/test_defaults.py
+++ b/test/sql/test_defaults.py
@@ -1,16 +1,17 @@
-from test.lib.testing import eq_, assert_raises, assert_raises_message
+from sqlalchemy.testing import eq_, assert_raises, assert_raises_message
import datetime
from sqlalchemy.schema import CreateSequence, DropSequence
from sqlalchemy.sql import select, text, literal_column
import sqlalchemy as sa
-from test.lib import testing, engines
+from sqlalchemy import testing
+from sqlalchemy.testing import engines
from sqlalchemy import MetaData, Integer, String, ForeignKey, Boolean, exc,\
Sequence, func, literal, Unicode
from sqlalchemy.types import TypeDecorator, TypeEngine
-from test.lib.schema import Table, Column
-from test.lib.testing import eq_
+from sqlalchemy.testing.schema import Table, Column
+from sqlalchemy.testing import eq_
from sqlalchemy.dialects import sqlite
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
class DefaultTest(fixtures.TestBase):
diff --git a/test/sql/test_functions.py b/test/sql/test_functions.py
index 478f41381..ae8e28e24 100644
--- a/test/sql/test_functions.py
+++ b/test/sql/test_functions.py
@@ -1,15 +1,16 @@
-from test.lib.testing import eq_
+from sqlalchemy.testing import eq_
import datetime
from sqlalchemy import *
from sqlalchemy.sql import table, column
from sqlalchemy import sql, util
from sqlalchemy.sql.compiler import BIND_TEMPLATES
-from test.lib.engines import all_dialects
+from sqlalchemy.testing.engines import all_dialects
from sqlalchemy import types as sqltypes
from sqlalchemy.sql import functions
from sqlalchemy.sql.functions import GenericFunction
from sqlalchemy.util.compat import decimal
-from test.lib import testing, fixtures, AssertsCompiledSQL, engines
+from sqlalchemy import testing
+from sqlalchemy.testing import fixtures, AssertsCompiledSQL, engines
from sqlalchemy.dialects import sqlite, postgresql, mysql, oracle
diff --git a/test/sql/test_generative.py b/test/sql/test_generative.py
index b78559960..f1c118e15 100644
--- a/test/sql/test_generative.py
+++ b/test/sql/test_generative.py
@@ -1,11 +1,14 @@
from sqlalchemy import *
from sqlalchemy.sql import table, column, ClauseElement, operators
from sqlalchemy.sql.expression import _clone, _from_objects
-from test.lib import *
-from sqlalchemy.sql.visitors import *
+from sqlalchemy.testing import fixtures, AssertsExecutionResults, \
+ AssertsCompiledSQL
+from sqlalchemy import testing
+from sqlalchemy.sql.visitors import ClauseVisitor, CloningVisitor, \
+ cloned_traverse, ReplacingCloningVisitor
from sqlalchemy import util, exc
from sqlalchemy.sql import util as sql_util
-from test.lib.testing import eq_, ne_, assert_raises
+from sqlalchemy.testing import eq_, ne_, assert_raises
class TraversalTest(fixtures.TestBase, AssertsExecutionResults):
"""test ClauseVisitor's traversal, particularly its
diff --git a/test/sql/test_inspect.py b/test/sql/test_inspect.py
index 9fcba16bd..8a0251498 100644
--- a/test/sql/test_inspect.py
+++ b/test/sql/test_inspect.py
@@ -2,8 +2,8 @@
from sqlalchemy import inspect
from sqlalchemy import Table, Column, Integer, MetaData
-from test.lib import fixtures
-from test.lib.testing import is_
+from sqlalchemy.testing import fixtures
+from sqlalchemy.testing import is_
class TestCoreInspection(fixtures.TestBase):
diff --git a/test/sql/test_labels.py b/test/sql/test_labels.py
index c814a0130..d6ebf3f80 100644
--- a/test/sql/test_labels.py
+++ b/test/sql/test_labels.py
@@ -1,11 +1,12 @@
-from test.lib.testing import assert_raises, assert_raises_message, eq_
-from test.lib.engines import testing_engine
-from test.lib import fixtures, AssertsCompiledSQL, testing
+from sqlalchemy.testing import assert_raises, assert_raises_message, eq_
+from sqlalchemy.testing.engines import testing_engine
+from sqlalchemy.testing import fixtures, AssertsCompiledSQL
+from sqlalchemy import testing
from sqlalchemy import *
from sqlalchemy import exc as exceptions
from sqlalchemy.engine import default
from sqlalchemy.sql import table, column
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
IDENT_LENGTH = 29
diff --git a/test/sql/test_metadata.py b/test/sql/test_metadata.py
index dcf9820cc..ba5c9e987 100644
--- a/test/sql/test_metadata.py
+++ b/test/sql/test_metadata.py
@@ -1,19 +1,19 @@
-from test.lib.testing import assert_raises
-from test.lib.testing import assert_raises_message
-from test.lib.testing import emits_warning
+from sqlalchemy.testing import assert_raises
+from sqlalchemy.testing import assert_raises_message
+from sqlalchemy.testing import emits_warning
import pickle
from sqlalchemy import Integer, String, UniqueConstraint, \
CheckConstraint, ForeignKey, MetaData, Sequence, \
ForeignKeyConstraint, ColumnDefault, Index, event,\
events, Unicode
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy import schema, exc
import sqlalchemy as tsa
-from test.lib import fixtures
-from test.lib import testing
-from test.lib.testing import ComparesTables, AssertsCompiledSQL
-from test.lib.testing import eq_, is_
+from sqlalchemy.testing import fixtures
+from sqlalchemy import testing
+from sqlalchemy.testing import ComparesTables, AssertsCompiledSQL
+from sqlalchemy.testing import eq_, is_
class MetaDataTest(fixtures.TestBase, ComparesTables):
def test_metadata_connect(self):
diff --git a/test/sql/test_operators.py b/test/sql/test_operators.py
index b104f6097..24b458958 100644
--- a/test/sql/test_operators.py
+++ b/test/sql/test_operators.py
@@ -1,5 +1,6 @@
-from test.lib import fixtures, testing
-from test.lib.testing import assert_raises_message
+from sqlalchemy.testing import fixtures
+from sqlalchemy import testing
+from sqlalchemy.testing import assert_raises_message
from sqlalchemy.sql import column, desc, asc, literal, collate
from sqlalchemy.sql.expression import BinaryExpression, \
ClauseList, Grouping, \
diff --git a/test/sql/test_query.py b/test/sql/test_query.py
index 70e3e97a8..d14cafc86 100644
--- a/test/sql/test_query.py
+++ b/test/sql/test_query.py
@@ -1,10 +1,12 @@
-from test.lib.testing import eq_, assert_raises_message, assert_raises, is_
+from sqlalchemy.testing import eq_, assert_raises_message, assert_raises, is_
+from sqlalchemy import testing
+from sqlalchemy.testing import fixtures, engines
+from sqlalchemy import util
import datetime
from sqlalchemy import *
-from sqlalchemy import exc, sql, util
+from sqlalchemy import exc, sql
from sqlalchemy.engine import default, result as _result
-from test.lib import *
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
class QueryTest(fixtures.TestBase):
diff --git a/test/sql/test_quote.py b/test/sql/test_quote.py
index a714002b1..f736a69ad 100644
--- a/test/sql/test_quote.py
+++ b/test/sql/test_quote.py
@@ -1,7 +1,8 @@
from sqlalchemy import *
from sqlalchemy import sql, schema
from sqlalchemy.sql import compiler
-from test.lib import *
+from sqlalchemy.testing import fixtures, AssertsCompiledSQL
+from sqlalchemy import testing
class QuoteTest(fixtures.TestBase, AssertsCompiledSQL):
__dialect__ = 'default'
diff --git a/test/sql/test_returning.py b/test/sql/test_returning.py
index c1ee900ef..55f4f7926 100644
--- a/test/sql/test_returning.py
+++ b/test/sql/test_returning.py
@@ -1,9 +1,9 @@
-from test.lib.testing import eq_
+from sqlalchemy.testing import eq_
from sqlalchemy import *
-from test.lib import *
-from test.lib.schema import Table, Column
+from sqlalchemy import testing
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.types import TypeDecorator
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures, AssertsExecutionResults, engines
class ReturningTest(fixtures.TestBase, AssertsExecutionResults):
__requires__ = 'returning',
diff --git a/test/sql/test_rowcount.py b/test/sql/test_rowcount.py
index c14fa22a1..f14f78989 100644
--- a/test/sql/test_rowcount.py
+++ b/test/sql/test_rowcount.py
@@ -1,5 +1,6 @@
from sqlalchemy import *
-from test.lib import *
+from sqlalchemy.testing import fixtures, AssertsExecutionResults
+from sqlalchemy import testing
class FoundRowsTest(fixtures.TestBase, AssertsExecutionResults):
diff --git a/test/sql/test_selectable.py b/test/sql/test_selectable.py
index b81bd8e6f..374147a1b 100644
--- a/test/sql/test_selectable.py
+++ b/test/sql/test_selectable.py
@@ -1,14 +1,16 @@
"""Test various algorithmic properties of selectables."""
-from test.lib.testing import eq_, assert_raises, \
+from sqlalchemy.testing import eq_, assert_raises, \
assert_raises_message, is_
from sqlalchemy import *
-from test.lib import *
+from sqlalchemy.testing import fixtures, AssertsCompiledSQL, \
+ AssertsExecutionResults
+from sqlalchemy import testing
from sqlalchemy.sql import util as sql_util, visitors
from sqlalchemy import exc
from sqlalchemy.sql import table, column, null
from sqlalchemy import util
-from test.lib import fixtures
+from sqlalchemy.testing import fixtures
metadata = MetaData()
table1 = Table('table1', metadata,
diff --git a/test/sql/test_type_expressions.py b/test/sql/test_type_expressions.py
index 320dc5d7c..4bb8a928d 100644
--- a/test/sql/test_type_expressions.py
+++ b/test/sql/test_type_expressions.py
@@ -1,6 +1,8 @@
from sqlalchemy import Table, Column, String, func, MetaData, select, TypeDecorator, cast
-from test.lib import fixtures, AssertsCompiledSQL, testing
-from test.lib.testing import eq_
+from sqlalchemy.testing import fixtures, AssertsCompiledSQL
+from sqlalchemy import testing
+from sqlalchemy.testing import eq_
+
class _ExprFixture(object):
def _fixture(self):
diff --git a/test/sql/test_types.py b/test/sql/test_types.py
index ff22ea4de..81b572989 100644
--- a/test/sql/test_types.py
+++ b/test/sql/test_types.py
@@ -1,5 +1,5 @@
# coding: utf-8
-from test.lib.testing import eq_, assert_raises, assert_raises_message
+from sqlalchemy.testing import eq_, assert_raises, assert_raises_message
import decimal
import datetime, os, re
from sqlalchemy import *
@@ -7,15 +7,17 @@ from sqlalchemy import exc, types, util, schema, dialects
for name in dialects.__all__:
__import__("sqlalchemy.dialects.%s" % name)
from sqlalchemy.sql import operators, column, table
-from test.lib.testing import eq_
+from sqlalchemy.testing import eq_
import sqlalchemy.engine.url as url
from sqlalchemy.engine import default
-from test.lib.schema import Table, Column
-from test.lib import *
-from test.lib.util import picklers
+from sqlalchemy.testing.schema import Table, Column
+from sqlalchemy import testing
+from sqlalchemy.testing import AssertsCompiledSQL, AssertsExecutionResults, \
+ engines, pickleable
+from sqlalchemy.testing.util import picklers
from sqlalchemy.util.compat import decimal
-from test.lib.util import round_decimal
-from test.lib import fixtures
+from sqlalchemy.testing.util import round_decimal
+from sqlalchemy.testing import fixtures
class AdaptTest(fixtures.TestBase):
def _all_dialect_modules(self):
diff --git a/test/sql/test_unicode.py b/test/sql/test_unicode.py
index e3fa0a4b3..37e44522e 100644
--- a/test/sql/test_unicode.py
+++ b/test/sql/test_unicode.py
@@ -2,10 +2,11 @@
"""verrrrry basic unicode column name testing"""
from sqlalchemy import *
-from test.lib import fixtures, engines, testing
-from test.lib.engines import utf8_engine
+from sqlalchemy.testing import fixtures, engines
+from sqlalchemy import testing
+from sqlalchemy.testing.engines import utf8_engine
from sqlalchemy.sql import column
-from test.lib.schema import Table, Column
+from sqlalchemy.testing.schema import Table, Column
class UnicodeSchemaTest(fixtures.TestBase):
__requires__ = ('unicode_ddl',)
diff --git a/test/sql/test_update.py b/test/sql/test_update.py
index 79079e512..b46489cd2 100644
--- a/test/sql/test_update.py
+++ b/test/sql/test_update.py
@@ -1,10 +1,11 @@
-from test.lib.testing import eq_, assert_raises_message, assert_raises, AssertsCompiledSQL
+from sqlalchemy.testing import eq_, assert_raises_message, assert_raises, AssertsCompiledSQL
import datetime
from sqlalchemy import *
from sqlalchemy import exc, sql, util
from sqlalchemy.engine import default, base
-from test.lib import *
-from test.lib.schema import Table, Column
+from sqlalchemy import testing
+from sqlalchemy.testing import fixtures
+from sqlalchemy.testing.schema import Table, Column
from sqlalchemy.dialects import mysql
class _UpdateFromTestBase(object):