MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / test_add_property

Method test_add_property

test/orm/test_mapper.py:968–1016  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

966 is_(User.addresses.info, User.addresses.property.info)
967
968 def test_add_property(self):
969 users, addresses, Address = (
970 self.tables.users,
971 self.tables.addresses,
972 self.classes.Address,
973 )
974
975 assert_col = []
976
977 class User(ComparableEntity):
978 def _get_name(self):
979 assert_col.append(("get", self._name))
980 return self._name
981
982 def _set_name(self, name):
983 assert_col.append(("set", name))
984 self._name = name
985
986 name = property(_get_name, _set_name)
987
988 m = self.mapper(User, users)
989 self.mapper(Address, addresses)
990
991 m.add_property("_name", deferred(users.c.name))
992
993 m.add_property("name", synonym("_name"))
994 m.add_property("addresses", relationship(Address))
995
996 sess = fixture_session()
997 assert sess.get(User, 7)
998
999 u = sess.query(User).filter_by(name="jack").one()
1000
1001 def go():
1002 eq_(
1003 len(u.addresses),
1004 len(self.static.user_address_result[0].addresses),
1005 )
1006 eq_(u.name, "jack")
1007 eq_(assert_col, [("get", "jack")], str(assert_col))
1008
1009 self.sql_count_(2, go)
1010
1011 u.name = "ed"
1012 u3 = User()
1013 u3.name = "some user"
1014 sess.add(u3)
1015 sess.flush()
1016 sess.rollback()
1017
1018 def test_add_prop_via_backref_resets_memoizations_reconfigures(self):
1019 users, User = self.tables.users, self.classes.User

Callers

nothing calls this directly

Calls 15

deferredFunction · 0.90
synonymFunction · 0.90
relationshipFunction · 0.90
fixture_sessionFunction · 0.90
add_propertyMethod · 0.80
sql_count_Method · 0.80
UserClass · 0.70
mapperMethod · 0.45
getMethod · 0.45
oneMethod · 0.45
filter_byMethod · 0.45
queryMethod · 0.45

Tested by

no test coverage detected