Basic save of one to many.
(self)
| 1515 | run_inserts = None |
| 1516 | |
| 1517 | def test_one_to_many_1(self): |
| 1518 | """Basic save of one to many.""" |
| 1519 | |
| 1520 | Address, addresses, users, User = ( |
| 1521 | self.classes.Address, |
| 1522 | self.tables.addresses, |
| 1523 | self.tables.users, |
| 1524 | self.classes.User, |
| 1525 | ) |
| 1526 | |
| 1527 | self.mapper_registry.map_imperatively( |
| 1528 | User, |
| 1529 | users, |
| 1530 | properties=dict( |
| 1531 | addresses=relationship( |
| 1532 | self.mapper_registry.map_imperatively(Address, addresses), |
| 1533 | lazy="select", |
| 1534 | ) |
| 1535 | ), |
| 1536 | ) |
| 1537 | u = User(name="one2manytester") |
| 1538 | a = Address(email_address="one2many@test.org") |
| 1539 | u.addresses.append(a) |
| 1540 | |
| 1541 | a2 = Address(email_address="lala@test.org") |
| 1542 | u.addresses.append(a2) |
| 1543 | |
| 1544 | session = fixture_session() |
| 1545 | session.add(u) |
| 1546 | session.flush() |
| 1547 | |
| 1548 | conn = session.connection() |
| 1549 | user_rows = conn.execute( |
| 1550 | users.select().where(users.c.id.in_([u.id])) |
| 1551 | ).fetchall() |
| 1552 | eq_(list(user_rows[0]), [u.id, "one2manytester"]) |
| 1553 | |
| 1554 | address_rows = conn.execute( |
| 1555 | addresses.select() |
| 1556 | .order_by(addresses.c.email_address) |
| 1557 | .where( |
| 1558 | addresses.c.id.in_([a.id, a2.id]), |
| 1559 | ) |
| 1560 | ).fetchall() |
| 1561 | eq_(list(address_rows[0]), [a2.id, u.id, "lala@test.org"]) |
| 1562 | eq_(list(address_rows[1]), [a.id, u.id, "one2many@test.org"]) |
| 1563 | |
| 1564 | userid = u.id |
| 1565 | addressid = a2.id |
| 1566 | |
| 1567 | a2.email_address = "somethingnew@foo.com" |
| 1568 | |
| 1569 | session.flush() |
| 1570 | |
| 1571 | address_rows = conn.execute( |
| 1572 | addresses.select().where(addresses.c.id == addressid) |
| 1573 | ).fetchall() |
| 1574 | eq_(list(address_rows[0]), [addressid, userid, "somethingnew@foo.com"]) |
nothing calls this directly
no test coverage detected