diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-03-26 20:44:47 -0400 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2011-03-26 20:44:47 -0400 |
| commit | e3dbb87d94e9caaec66bb141852fcd53caec3dea (patch) | |
| tree | 46d9f6d4da068801a1cbe9e6a8cddc2d065b13e9 /test/orm/_fixtures.py | |
| parent | 0a695bb004a12a03c7493d647fed9ebdadca5fa0 (diff) | |
| download | sqlalchemy-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.py | 102 |
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() |
