MCPcopy Index your code
hub / github.com/sqlalchemy/sqlalchemy / test_collection_set

Method test_collection_set

test/orm/test_dynamic.py:1084–1112  ·  view source on GitHub ↗
(self, user_address_fixture)

Source from the content-addressed store, hash-verified

1082 assert "addresses" in u1.__dict__
1083
1084 def test_collection_set(self, user_address_fixture):
1085 addresses = self.tables.addresses
1086 User, Address = user_address_fixture(
1087 addresses_args={"order_by": addresses.c.email_address}
1088 )
1089 sess = fixture_session(
1090 autoflush=True,
1091 )
1092 u1 = User(name="jack")
1093 a1 = Address(email_address="a1")
1094 a2 = Address(email_address="a2")
1095 a3 = Address(email_address="a3")
1096 a4 = Address(email_address="a4")
1097
1098 sess.add(u1)
1099 u1.addresses = [a1, a3]
1100 eq_(self._list_collection(u1.addresses), [a1, a3])
1101
1102 if User.addresses.property.lazy == "write_only":
1103 with self._expect_no_iteration():
1104 u1.addresses = [a1, a2, a4]
1105 return
1106
1107 u1.addresses = [a1, a2, a4]
1108 eq_(list(u1.addresses), [a1, a2, a4])
1109 u1.addresses = [a2, a3]
1110 eq_(list(u1.addresses), [a2, a3])
1111 u1.addresses = []
1112 eq_(list(u1.addresses), [])
1113
1114 def test_noload_add(self, user_address_fixture):
1115 # test that a load of User.addresses is not emitted

Callers

nothing calls this directly

Calls 7

_list_collectionMethod · 0.95
fixture_sessionFunction · 0.90
eq_Function · 0.90
_expect_no_iterationMethod · 0.80
UserClass · 0.70
AddressClass · 0.70
addMethod · 0.45

Tested by

no test coverage detected