summaryrefslogtreecommitdiff
path: root/test/orm/_fixtures.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2011-03-26 20:44:47 -0400
committerMike Bayer <mike_mp@zzzcomputing.com>2011-03-26 20:44:47 -0400
commite3dbb87d94e9caaec66bb141852fcd53caec3dea (patch)
tree46d9f6d4da068801a1cbe9e6a8cddc2d065b13e9 /test/orm/_fixtures.py
parent0a695bb004a12a03c7493d647fed9ebdadca5fa0 (diff)
downloadsqlalchemy-e3dbb87d94e9caaec66bb141852fcd53caec3dea.tar.gz
- move _fixtures to work via the normal methods of _base.MappedTest, convert
all referncing tests to not use globals - tests that deal with pickle specifically load the fixture classes from test.lib.pickleable, which gets some more classes added - removed weird sa05 pickling tests that don't matter
Diffstat (limited to 'test/orm/_fixtures.py')
-rw-r--r--test/orm/_fixtures.py102
1 files changed, 50 insertions, 52 deletions
diff --git a/test/orm/_fixtures.py b/test/orm/_fixtures.py
index 366c4ad5a..41c354e4a 100644
--- a/test/orm/_fixtures.py
+++ b/test/orm/_fixtures.py
@@ -1,4 +1,5 @@
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.orm import attributes
@@ -8,63 +9,45 @@ from test.orm import _base
__all__ = ()
-class Base(_base.ComparableEntity):
- pass
-
-
-class User(Base):
- pass
-
-
-class Order(Base):
- pass
-
-
-class Item(Base):
- pass
-
-
-class Keyword(Base):
- pass
-
-
-class Address(Base):
- pass
+class FixtureTest(_base.MappedTest):
+ """A MappedTest pre-configured with a common set of fixtures.
+ """
-class Dingaling(Base):
- pass
+ run_define_tables = 'once'
+ run_setup_classes = 'once'
+ run_setup_mappers = 'each'
+ run_inserts = 'each'
+ run_deletes = 'each'
+ @classmethod
+ def setup_classes(cls):
+ class Base(_base.ComparableEntity):
+ pass
-class Node(Base):
- pass
+ class User(Base):
+ pass
-class CompositePk(Base):
- pass
+ class Order(Base):
+ pass
-class FixtureTest(_base.MappedTest):
- """A MappedTest pre-configured for fixtures.
+ class Item(Base):
+ pass
- All fixture tables are pre-loaded into cls.tables, as are all fixture
- lasses in cls.classes and as cls.ClassName.
+ class Keyword(Base):
+ pass
- Fixture.mapper() still functions and willregister non-fixture classes into
- cls.classes.
+ class Address(Base):
+ pass
- """
+ class Dingaling(Base):
+ pass
- run_define_tables = 'once'
- run_setup_classes = 'once'
- run_setup_mappers = 'each'
- run_inserts = 'each'
- run_deletes = 'each'
+ class Node(Base):
+ pass
- fixture_classes = dict(User=User,
- Order=Order,
- Item=Item,
- Keyword=Keyword,
- Address=Address,
- Dingaling=Dingaling)
+ class CompositePk(Base):
+ pass
@classmethod
def define_tables(cls, metadata):
@@ -149,11 +132,6 @@ class FixtureTest(_base.MappedTest):
)
@classmethod
- def setup_classes(cls):
- for cl in cls.fixture_classes.values():
- cls.register_class(cl)
-
- @classmethod
def setup_mappers(cls):
pass
@@ -267,11 +245,20 @@ class FixtureTest(_base.MappedTest):
)
)
+ @util.memoized_property
+ def static(self):
+ return CannedResults(self)
+
class CannedResults(object):
"""Built on demand, instances use mappers in effect at time of call."""
+ def __init__(self, test):
+ self.test = test
+
@property
def user_result(self):
+ User = self.test.classes.User
+
return [
User(id=7),
User(id=8),
@@ -280,6 +267,8 @@ class CannedResults(object):
@property
def user_address_result(self):
+ User, Address = self.test.classes.User, self.test.classes.Address
+
return [
User(id=7, addresses=[
Address(id=1)
@@ -296,6 +285,10 @@ class CannedResults(object):
@property
def user_all_result(self):
+ User, Address, Order, Item = self.test.classes.User, \
+ self.test.classes.Address, self.test.classes.Order, \
+ self.test.classes.Item
+
return [
User(id=7,
addresses=[
@@ -330,6 +323,8 @@ class CannedResults(object):
@property
def user_order_result(self):
+ User, Order, Item = self.test.classes.User, \
+ self.test.classes.Order, self.test.classes.Item
return [
User(id=7,
orders=[
@@ -363,6 +358,7 @@ class CannedResults(object):
@property
def item_keyword_result(self):
+ Item, Keyword = self.test.classes.Item, self.test.classes.Keyword
return [
Item(id=1,
keywords=[
@@ -386,6 +382,9 @@ class CannedResults(object):
@property
def user_item_keyword_result(self):
+ Item, Keyword = self.test.classes.Item, self.test.classes.Keyword
+ User, Order = self.test.classes.User, self.test.classes.Order
+
item1, item2, item3, item4, item5 = \
Item(id=1,
keywords=[
@@ -426,5 +425,4 @@ class CannedResults(object):
User(id=10, orders=[])]
return user_result
-FixtureTest.static = CannedResults()