(self)
| 857 | eq_(sess.query(User).all(), [User(name="fred")]) |
| 858 | |
| 859 | def test_one_to_many_cascade(self): |
| 860 | users, Address, addresses, User = ( |
| 861 | self.tables.users, |
| 862 | self.classes.Address, |
| 863 | self.tables.addresses, |
| 864 | self.classes.User, |
| 865 | ) |
| 866 | |
| 867 | self.mapper_registry.map_imperatively( |
| 868 | User, |
| 869 | users, |
| 870 | properties={ |
| 871 | "addresses": relationship( |
| 872 | self.mapper_registry.map_imperatively(Address, addresses) |
| 873 | ) |
| 874 | }, |
| 875 | ) |
| 876 | |
| 877 | load = self.load_tracker(User) |
| 878 | self.load_tracker(Address, load) |
| 879 | |
| 880 | sess = fixture_session(expire_on_commit=False) |
| 881 | u = User(name="fred") |
| 882 | a1 = Address(email_address="foo@bar") |
| 883 | a2 = Address(email_address="foo@quux") |
| 884 | u.addresses.extend([a1, a2]) |
| 885 | |
| 886 | sess.add(u) |
| 887 | sess.commit() |
| 888 | |
| 889 | eq_(load.called, 0) |
| 890 | |
| 891 | sess2 = fixture_session() |
| 892 | u2 = sess2.get(User, u.id) |
| 893 | eq_(load.called, 1) |
| 894 | |
| 895 | u.addresses[1].email_address = "addr 2 modified" |
| 896 | sess2.merge(u) |
| 897 | eq_(u2.addresses[1].email_address, "addr 2 modified") |
| 898 | eq_(load.called, 3) |
| 899 | |
| 900 | sess3 = fixture_session() |
| 901 | u3 = sess3.get(User, u.id) |
| 902 | eq_(load.called, 4) |
| 903 | |
| 904 | u.name = "also fred" |
| 905 | sess3.merge(u) |
| 906 | eq_(load.called, 6) |
| 907 | eq_(u3.name, "also fred") |
| 908 | |
| 909 | def test_many_to_one_cascade(self): |
| 910 | Address, addresses, users, User = ( |
nothing calls this directly
no test coverage detected