(self)
| 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 |
nothing calls this directly
no test coverage detected