MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / test_tuple_labeling

Method test_tuple_labeling

test/orm/test_pickled.py:784–840  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

782 ) # m2o
783
784 def test_tuple_labeling(self):
785 sess = fixture_session()
786
787 # test pickle + all the protocols !
788 for pickled in False, -1, 0, 1, 2:
789 for row in sess.query(User, Address).join(User.addresses).all():
790 if pickled is not False:
791 row = pickle.loads(pickle.dumps(row, pickled))
792
793 eq_(list(row._fields), ["User", "Address"])
794 eq_(row.User, row[0])
795 eq_(row.Address, row[1])
796
797 for row in sess.query(User.name, User.id.label("foobar")):
798 if pickled is not False:
799 row = pickle.loads(pickle.dumps(row, pickled))
800 eq_(list(row._fields), ["name", "foobar"])
801 eq_(row.name, row[0])
802 eq_(row.foobar, row[1])
803
804 for row in sess.query(User).with_entities(
805 User.name, User.id.label("foobar")
806 ):
807 if pickled is not False:
808 row = pickle.loads(pickle.dumps(row, pickled))
809 eq_(list(row._fields), ["name", "foobar"])
810 eq_(row.name, row[0])
811 eq_(row.foobar, row[1])
812
813 oalias = aliased(Order)
814 for row in (
815 sess.query(User, oalias)
816 .join(User.orders.of_type(oalias))
817 .all()
818 ):
819 if pickled is not False:
820 row = pickle.loads(pickle.dumps(row, pickled))
821 eq_(list(row._fields), ["User"])
822 eq_(row.User, row[0])
823
824 oalias = aliased(Order, name="orders")
825 for row in (
826 sess.query(User, oalias).join(oalias, User.orders).all()
827 ):
828 if pickled is not False:
829 row = pickle.loads(pickle.dumps(row, pickled))
830 eq_(list(row._fields), ["User", "orders"])
831 eq_(row.User, row[0])
832 eq_(row.orders, row[1])
833
834 for row in sess.query(User.name + "hoho", User.name):
835 eq_(list(row._fields), ["name"])
836 eq_(row[0], row.name + "hoho")
837
838 if pickled is not False:
839 ret = sess.query(User, Address).join(User.addresses).all()
840 pickle.loads(pickle.dumps(ret, pickled))
841

Callers

nothing calls this directly

Calls 11

fixture_sessionFunction · 0.90
eq_Function · 0.90
aliasedFunction · 0.90
with_entitiesMethod · 0.80
allMethod · 0.45
joinMethod · 0.45
queryMethod · 0.45
loadsMethod · 0.45
dumpsMethod · 0.45
labelMethod · 0.45
of_typeMethod · 0.45

Tested by

no test coverage detected