summaryrefslogtreecommitdiff
path: root/test/orm/test_selectable.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/orm/test_selectable.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/orm/test_selectable.py')
-rw-r--r--test/orm/test_selectable.py55
1 files changed, 55 insertions, 0 deletions
diff --git a/test/orm/test_selectable.py b/test/orm/test_selectable.py
new file mode 100644
index 000000000..0a2025360
--- /dev/null
+++ b/test/orm/test_selectable.py
@@ -0,0 +1,55 @@
+"""Generic mapping to Select statements"""
+from sqlalchemy.test.testing import assert_raises, assert_raises_message
+import sqlalchemy as sa
+from sqlalchemy.test import testing
+from sqlalchemy import String, Integer, select
+from sqlalchemy.test.schema import Table
+from sqlalchemy.test.schema import Column
+from sqlalchemy.orm import mapper, create_session
+from sqlalchemy.test.testing import eq_
+from test.orm import _base
+
+
+# TODO: more tests mapping to selects
+
+class SelectableNoFromsTest(_base.MappedTest):
+ @classmethod
+ def define_tables(cls, metadata):
+ Table('common', metadata,
+ Column('id', Integer, primary_key=True),
+ Column('data', Integer),
+ Column('extra', String(45)))
+
+ @classmethod
+ def setup_classes(cls):
+ class Subset(_base.ComparableEntity):
+ pass
+
+ @testing.resolve_artifact_names
+ def test_no_tables(self):
+
+ selectable = select(["x", "y", "z"])
+ assert_raises_message(sa.exc.InvalidRequestError,
+ "Could not find any Table objects",
+ mapper, Subset, selectable)
+
+ @testing.emits_warning('.*creating an Alias.*')
+ @testing.resolve_artifact_names
+ def test_basic(self):
+ subset_select = select([common.c.id, common.c.data])
+ subset_mapper = mapper(Subset, subset_select)
+
+ sess = create_session(bind=testing.db)
+ sess.add(Subset(data=1))
+ sess.flush()
+ sess.expunge_all()
+
+ eq_(sess.query(Subset).all(), [Subset(data=1)])
+ eq_(sess.query(Subset).filter(Subset.data==1).one(), Subset(data=1))
+ eq_(sess.query(Subset).filter(Subset.data!=1).first(), None)
+
+ subset_select = sa.orm.class_mapper(Subset).mapped_table
+ eq_(sess.query(Subset).filter(subset_select.c.data==1).one(),
+ Subset(data=1))
+
+