MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / test_association_nonaliased

Method test_association_nonaliased

test/orm/test_dynamic.py:565–603  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

563 assert i1 in o1.items.all()
564
565 def test_association_nonaliased(self):
566 items, Order, orders, order_items, Item = (
567 self.tables.items,
568 self.classes.Order,
569 self.tables.orders,
570 self.tables.order_items,
571 self.classes.Item,
572 )
573
574 self.mapper_registry.map_imperatively(
575 Order,
576 orders,
577 properties={
578 "items": relationship(
579 Item,
580 secondary=order_items,
581 order_by=order_items.c.item_id,
582 lazy="dynamic",
583 )
584 },
585 )
586 self.mapper_registry.map_imperatively(Item, items)
587
588 sess = fixture_session()
589 o = sess.query(Order).first()
590
591 self.assert_compile(
592 o.items,
593 "SELECT items.id AS items_id, items.description AS "
594 "items_description FROM items,"
595 " order_items WHERE :param_1 = order_items.order_id AND "
596 "items.id = order_items.item_id"
597 " ORDER BY order_items.item_id",
598 use_default_dialect=True,
599 )
600
601 # filter criterion against the secondary table
602 # works
603 eq_(o.items.filter(order_items.c.item_id == 2).all(), [Item(id=2)])
604
605 def test_secondary_as_join(self):
606 # test [ticket:4349]

Callers

nothing calls this directly

Calls 10

relationshipFunction · 0.90
fixture_sessionFunction · 0.90
eq_Function · 0.90
map_imperativelyMethod · 0.80
assert_compileMethod · 0.80
ItemClass · 0.70
firstMethod · 0.45
queryMethod · 0.45
allMethod · 0.45
filterMethod · 0.45

Tested by

no test coverage detected