MCPcopy Create free account
hub / github.com/sqlalchemy/sqlalchemy / test_tuple_labeling

Method test_tuple_labeling

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

Source from the content-addressed store, hash-verified

1026 ) # m2o
1027
1028 def test_tuple_labeling(self):
1029 sess = fixture_session()
1030
1031 # test pickle + all the protocols !
1032 for pickled in False, -1, 0, 1, 2:
1033 for row in sess.query(User, Address).join(User.addresses).all():
1034 if pickled is not False:
1035 row = pickle.loads(pickle.dumps(row, pickled))
1036
1037 eq_(list(row._fields), ["User", "Address"])
1038 eq_(row.User, row[0])
1039 eq_(row.Address, row[1])
1040
1041 for row in sess.query(User.name, User.id.label("foobar")):
1042 if pickled is not False:
1043 row = pickle.loads(pickle.dumps(row, pickled))
1044 eq_(list(row._fields), ["name", "foobar"])
1045 eq_(row.name, row[0])
1046 eq_(row.foobar, row[1])
1047
1048 for row in sess.query(User).with_entities(
1049 User.name, User.id.label("foobar")
1050 ):
1051 if pickled is not False:
1052 row = pickle.loads(pickle.dumps(row, pickled))
1053 eq_(list(row._fields), ["name", "foobar"])
1054 eq_(row.name, row[0])
1055 eq_(row.foobar, row[1])
1056
1057 oalias = aliased(Order)
1058 for row in (
1059 sess.query(User, oalias)
1060 .join(User.orders.of_type(oalias))
1061 .all()
1062 ):
1063 if pickled is not False:
1064 row = pickle.loads(pickle.dumps(row, pickled))
1065 eq_(list(row._fields), ["User"])
1066 eq_(row.User, row[0])
1067
1068 oalias = aliased(Order, name="orders")
1069 for row in (
1070 sess.query(User, oalias).join(oalias, User.orders).all()
1071 ):
1072 if pickled is not False:
1073 row = pickle.loads(pickle.dumps(row, pickled))
1074 eq_(list(row._fields), ["User", "orders"])
1075 eq_(row.User, row[0])
1076 eq_(row.orders, row[1])
1077
1078 for row in sess.query(User.name + "hoho", User.name):
1079 eq_(list(row._fields), ["name"])
1080 eq_(row[0], row.name + "hoho")
1081
1082 if pickled is not False:
1083 ret = sess.query(User, Address).join(User.addresses).all()
1084 pickle.loads(pickle.dumps(ret, pickled))
1085

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