pass
+class Item(fixtures.ComparableEntity):
+ pass
+
+
+class Keyword(fixtures.ComparableEntity):
+ pass
+
+
class Dingaling(fixtures.ComparableEntity):
pass
return CannedResults(self)
+class PickleFixtureMixin(object):
+ @classmethod
+ def setup_classes(cls):
+ from sqlalchemy.testing import pickleable
+
+ cls.classes.update(
+ {
+ "User": pickleable.User,
+ "Order": pickleable.Order,
+ "Address": pickleable.Address,
+ "Item": pickleable.Item,
+ "Keyword": pickleable.Keyword,
+ "Dingaling": pickleable.Dingaling,
+ }
+ )
+
+
class CannedResults(object):
"""Built on demand, instances use mappers in effect at time of call."""
+import pickle
+
import sqlalchemy as sa
from sqlalchemy import bindparam
from sqlalchemy import ForeignKey
from .inheritance._poly_fixtures import Person
-class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
+class EagerTest(
+ _fixtures.PickleFixtureMixin,
+ _fixtures.FixtureTest,
+ testing.AssertsCompiledSQL,
+):
run_inserts = "once"
run_deletes = None
with fixture_session() as sess:
def go():
+ result = (
+ sess.query(User).options(*opts).order_by(User.id).all()
+ )
+ eq_(
+ result,
+ self.static.user_item_keyword_result,
+ )
+
+ print(f"pickling User structure based on: {opts}")
eq_(
- sess.query(User).options(*opts).order_by(User.id).all(),
+ pickle.loads(pickle.dumps(result)),
self.static.user_item_keyword_result,
)