summaryrefslogtreecommitdiff
path: root/test/engine/bind.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2009-06-10 21:18:24 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2009-06-10 21:18:24 +0000
commit45cec095b4904ba71425d2fe18c143982dd08f43 (patch)
treeaf5e540fdcbf1cb2a3337157d69d4b40be010fa8 /test/engine/bind.py
parent698a3c1ac665e7cd2ef8d5ad3ebf51b7fe6661f4 (diff)
downloadsqlalchemy-45cec095b4904ba71425d2fe18c143982dd08f43.tar.gz
- unit tests have been migrated from unittest to nose.
See README.unittests for information on how to run the tests. [ticket:970]
Diffstat (limited to 'test/engine/bind.py')
-rw-r--r--test/engine/bind.py223
1 files changed, 0 insertions, 223 deletions
diff --git a/test/engine/bind.py b/test/engine/bind.py
deleted file mode 100644
index 5b8605aad..000000000
--- a/test/engine/bind.py
+++ /dev/null
@@ -1,223 +0,0 @@
-"""tests the "bind" attribute/argument across schema and SQL,
-including the deprecated versions of these arguments"""
-
-import testenv; testenv.configure_for_tests()
-from sqlalchemy import engine, exc
-from sqlalchemy import MetaData, ThreadLocalMetaData
-from testlib.sa import Table, Column, Integer, text
-from testlib import sa, testing
-
-
-class BindTest(testing.TestBase):
- def test_create_drop_explicit(self):
- metadata = MetaData()
- table = Table('test_table', metadata,
- Column('foo', Integer))
- for bind in (
- testing.db,
- testing.db.connect()
- ):
- for args in [
- ([], {'bind':bind}),
- ([bind], {})
- ]:
- metadata.create_all(*args[0], **args[1])
- assert table.exists(*args[0], **args[1])
- metadata.drop_all(*args[0], **args[1])
- table.create(*args[0], **args[1])
- table.drop(*args[0], **args[1])
- assert not table.exists(*args[0], **args[1])
-
- def test_create_drop_err(self):
- metadata = MetaData()
- table = Table('test_table', metadata,
- Column('foo', Integer))
-
- for meth in [
- metadata.create_all,
- metadata.drop_all,
- table.create,
- table.drop,
- ]:
- try:
- meth()
- assert False
- except exc.UnboundExecutionError, e:
- self.assertEquals(
- str(e),
- "The MetaData "
- "is not bound to an Engine or Connection. "
- "Execution can not proceed without a database to execute "
- "against. Either execute with an explicit connection or "
- "assign the MetaData's .bind to enable implicit execution.")
-
- for meth in [
- table.exists,
- # future:
- #table.create,
- #table.drop,
- ]:
- try:
- meth()
- assert False
- except exc.UnboundExecutionError, e:
- self.assertEquals(
- str(e),
- "The Table 'test_table' "
- "is not bound to an Engine or Connection. "
- "Execution can not proceed without a database to execute "
- "against. Either execute with an explicit connection or "
- "assign this Table's .metadata.bind to enable implicit "
- "execution.")
-
- @testing.future
- def test_create_drop_err2(self):
- metadata = MetaData()
- table = Table('test_table', metadata,
- Column('foo', Integer))
-
- for meth in [
- table.exists,
- table.create,
- table.drop,
- ]:
- try:
- meth()
- assert False
- except exc.UnboundExecutionError, e:
- self.assertEquals(
- str(e),
- "The Table 'test_table' "
- "is not bound to an Engine or Connection. "
- "Execution can not proceed without a database to execute "
- "against. Either execute with an explicit connection or "
- "assign this Table's .metadata.bind to enable implicit "
- "execution.")
-
- @testing.uses_deprecated()
- def test_create_drop_bound(self):
-
- for meta in (MetaData,ThreadLocalMetaData):
- for bind in (
- testing.db,
- testing.db.connect()
- ):
- metadata = meta()
- table = Table('test_table', metadata,
- Column('foo', Integer))
- metadata.bind = bind
- assert metadata.bind is table.bind is bind
- metadata.create_all()
- assert table.exists()
- metadata.drop_all()
- table.create()
- table.drop()
- assert not table.exists()
-
- metadata = meta()
- table = Table('test_table', metadata,
- Column('foo', Integer))
-
- metadata.connect(bind)
-
- assert metadata.bind is table.bind is bind
- metadata.create_all()
- assert table.exists()
- metadata.drop_all()
- table.create()
- table.drop()
- assert not table.exists()
- if isinstance(bind, engine.Connection):
- bind.close()
-
- def test_create_drop_constructor_bound(self):
- for bind in (
- testing.db,
- testing.db.connect()
- ):
- try:
- for args in (
- ([bind], {}),
- ([], {'bind':bind}),
- ):
- metadata = MetaData(*args[0], **args[1])
- table = Table('test_table', metadata,
- Column('foo', Integer))
- assert metadata.bind is table.bind is bind
- metadata.create_all()
- assert table.exists()
- metadata.drop_all()
- table.create()
- table.drop()
- assert not table.exists()
- finally:
- if isinstance(bind, engine.Connection):
- bind.close()
-
- def test_implicit_execution(self):
- metadata = MetaData()
- table = Table('test_table', metadata,
- Column('foo', Integer),
- test_needs_acid=True,
- )
- conn = testing.db.connect()
- metadata.create_all(bind=conn)
- try:
- trans = conn.begin()
- metadata.bind = conn
- t = table.insert()
- assert t.bind is conn
- table.insert().execute(foo=5)
- table.insert().execute(foo=6)
- table.insert().execute(foo=7)
- trans.rollback()
- metadata.bind = None
- assert conn.execute("select count(1) from test_table").scalar() == 0
- finally:
- metadata.drop_all(bind=conn)
-
-
- def test_clauseelement(self):
- metadata = MetaData()
- table = Table('test_table', metadata,
- Column('foo', Integer))
- metadata.create_all(bind=testing.db)
- try:
- for elem in [
- table.select,
- lambda **kwargs: sa.func.current_timestamp(**kwargs).select(),
-# func.current_timestamp().select,
- lambda **kwargs:text("select * from test_table", **kwargs)
- ]:
- for bind in (
- testing.db,
- testing.db.connect()
- ):
- try:
- e = elem(bind=bind)
- assert e.bind is bind
- e.execute()
- finally:
- if isinstance(bind, engine.Connection):
- bind.close()
-
- try:
- e = elem()
- assert e.bind is None
- e.execute()
- assert False
- except exc.UnboundExecutionError, e:
- assert str(e).endswith(
- 'is not bound and does not support direct '
- 'execution. Supply this statement to a Connection or '
- 'Engine for execution. Or, assign a bind to the '
- 'statement or the Metadata of its underlying tables to '
- 'enable implicit execution via this method.')
- finally:
- if isinstance(bind, engine.Connection):
- bind.close()
- metadata.drop_all(bind=testing.db)
-
-
-if __name__ == '__main__':
- testenv.main()