(self)
| 2078 | |
| 2079 | class RefreshTest(_fixtures.FixtureTest): |
| 2080 | def test_refresh(self): |
| 2081 | users, Address, addresses, User = ( |
| 2082 | self.tables.users, |
| 2083 | self.classes.Address, |
| 2084 | self.tables.addresses, |
| 2085 | self.classes.User, |
| 2086 | ) |
| 2087 | |
| 2088 | self.mapper_registry.map_imperatively( |
| 2089 | User, |
| 2090 | users, |
| 2091 | properties={ |
| 2092 | "addresses": relationship( |
| 2093 | self.mapper_registry.map_imperatively(Address, addresses), |
| 2094 | backref="user", |
| 2095 | ) |
| 2096 | }, |
| 2097 | ) |
| 2098 | s = fixture_session(autoflush=False) |
| 2099 | u = s.get(User, 7) |
| 2100 | u.name = "foo" |
| 2101 | a = Address() |
| 2102 | assert sa.orm.object_session(a) is None |
| 2103 | u.addresses.append(a) |
| 2104 | assert a.email_address is None |
| 2105 | assert id(a) in [id(x) for x in u.addresses] |
| 2106 | |
| 2107 | s.refresh(u) |
| 2108 | |
| 2109 | # its refreshed, so not dirty |
| 2110 | assert u not in s.dirty |
| 2111 | |
| 2112 | # username is back to the DB |
| 2113 | assert u.name == "jack" |
| 2114 | |
| 2115 | assert id(a) not in [id(x) for x in u.addresses] |
| 2116 | |
| 2117 | u.name = "foo" |
| 2118 | u.addresses.append(a) |
| 2119 | # now its dirty |
| 2120 | assert u in s.dirty |
| 2121 | assert u.name == "foo" |
| 2122 | assert id(a) in [id(x) for x in u.addresses] |
| 2123 | s.expire(u) |
| 2124 | |
| 2125 | # get the attribute, it refreshes |
| 2126 | assert u.name == "jack" |
| 2127 | assert id(a) not in [id(x) for x in u.addresses] |
| 2128 | |
| 2129 | def test_persistence_check(self): |
| 2130 | users, User = self.tables.users, self.classes.User |
nothing calls this directly
no test coverage detected