summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2012-09-27 02:37:33 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2012-09-27 02:37:33 -0400
commit20cdc64588b0f6ae52f8380c11d0ed848005377b (patch)
tree08f6cc8f82263f1e402c1c05c83b66a1f4b016ac
parent21cac5b598a83ef0e24423dc523629b475aa3af0 (diff)
downloadsqlalchemy-20cdc64588b0f6ae52f8380c11d0ed848005377b.tar.gz
trying different approaches to test layout. in this one, the testing modules
become an externally usable package but still remains within the main sqlalchemy parent package. in this system, we use kind of an ugly hack to get the noseplugin imported outside of the "sqlalchemy" package, while still making it available within sqlalchemy for usage by third party libraries.
-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):