(self)
| 2256 | run_inserts = None |
| 2257 | |
| 2258 | def test_m2o_one_to_one(self): |
| 2259 | users, Address, addresses, User = ( |
| 2260 | self.tables.users, |
| 2261 | self.classes.Address, |
| 2262 | self.tables.addresses, |
| 2263 | self.classes.User, |
| 2264 | ) |
| 2265 | |
| 2266 | self.mapper_registry.map_imperatively( |
| 2267 | Address, |
| 2268 | addresses, |
| 2269 | properties=dict( |
| 2270 | user=relationship( |
| 2271 | self.mapper_registry.map_imperatively(User, users), |
| 2272 | lazy="select", |
| 2273 | uselist=False, |
| 2274 | ) |
| 2275 | ), |
| 2276 | ) |
| 2277 | |
| 2278 | session = fixture_session() |
| 2279 | |
| 2280 | data = [ |
| 2281 | {"name": "thesub", "email_address": "bar@foo.com"}, |
| 2282 | {"name": "assdkfj", "email_address": "thesdf@asdf.com"}, |
| 2283 | {"name": "n4knd", "email_address": "asf3@bar.org"}, |
| 2284 | {"name": "v88f4", "email_address": "adsd5@llala.net"}, |
| 2285 | {"name": "asdf8d", "email_address": "theater@foo.com"}, |
| 2286 | ] |
| 2287 | objects = [] |
| 2288 | for elem in data: |
| 2289 | a = Address() |
| 2290 | a.email_address = elem["email_address"] |
| 2291 | a.user = User() |
| 2292 | a.user.name = elem["name"] |
| 2293 | objects.append(a) |
| 2294 | session.add(a) |
| 2295 | |
| 2296 | session.flush() |
| 2297 | objects[2].email_address = "imnew@foo.bar" |
| 2298 | objects[3].user = User() |
| 2299 | objects[3].user.name = "imnewlyadded" |
| 2300 | self.assert_sql_execution( |
| 2301 | testing.db, |
| 2302 | session.flush, |
| 2303 | CompiledSQL( |
| 2304 | "INSERT INTO users (name) VALUES (:name)", |
| 2305 | {"name": "imnewlyadded"}, |
| 2306 | ), |
| 2307 | AllOf( |
| 2308 | CompiledSQL( |
| 2309 | "UPDATE addresses " |
| 2310 | "SET email_address=:email_address " |
| 2311 | "WHERE addresses.id = :addresses_id", |
| 2312 | lambda ctx: { |
| 2313 | "email_address": "imnew@foo.bar", |
| 2314 | "addresses_id": objects[2].id, |
| 2315 | }, |
nothing calls this directly
no test coverage detected