def test_load_collection_mixed(self):
        Customer = self.classes.Customer
        Order = self.classes.Order

        s = Session()

        n = orm_nested(s.query(Order.id, Order).filter(Customer.orders))

        q = s.query(Customer, n).filter(Customer.id == 1)

        with self.assert_statement_count(1):
            eq_(
                q.all(),
                [
                    (Customer(id=1, name='David McFarlane'),
                        [
                        (101, Order(customer_id=1, id=101,
                            order_info='apple related')),
                        (102, Order(customer_id=1, id=102,
                            order_info='apple related')),
                        (103, Order(customer_id=1, id=103,
                            order_info='apple related'))
                        ]
                    )
                ]
            )
    def test_render_query_nested_alone(self):
        Customer = self.classes.Customer
        Order = self.classes.Order
        s = Session()

        n = orm_nested(s.query(Order).filter(Customer.orders))
        self.assert_compile(
            n, '(SELECT "order".id, "order".customer_id, "order".order_info '
            'FROM "order", customer WHERE customer.id = "order".customer_id)')
    def test_render_query_nested_alone(self):
        Customer = self.classes.Customer
        Order = self.classes.Order
        s = Session()

        n = orm_nested(s.query(Order).filter(Customer.orders))
        self.assert_compile(
            n,
            '(SELECT "order".id, "order".customer_id, "order".order_info '
            'FROM "order", customer WHERE customer.id = "order".customer_id)'
        )
    def test_load_collection_entity(self):
        Customer = self.classes.Customer
        Order = self.classes.Order

        s = Session()

        n = orm_nested(s.query(Order).filter(Customer.orders))

        q = s.query(Customer, n).filter(Customer.id == 1)

        with self.assert_statement_count(1):
            eq_(q.all(), self._orm_fixture(orders=True))
 def test_render_query_basic_nested(self):
     Customer = self.classes.Customer
     Order = self.classes.Order
     s = Session()
     n = orm_nested(s.query(Order).filter(Customer.orders))
     q = s.query(Customer, n)
     self.assert_compile(
         q, 'SELECT customer.id AS customer_id, '
         'customer.name AS customer_name, (SELECT "order".id, '
         '"order".customer_id, "order".order_info FROM "order" '
         'WHERE customer.id = "order".customer_id) AS anon_1 '
         'FROM customer')
 def test_render_query_basic_nested(self):
     Customer = self.classes.Customer
     Order = self.classes.Order
     s = Session()
     n = orm_nested(s.query(Order).filter(Customer.orders))
     q = s.query(Customer, n)
     self.assert_compile(
             q,
             'SELECT customer.id AS customer_id, '
             'customer.name AS customer_name, (SELECT "order".id, '
             '"order".customer_id, "order".order_info FROM "order" '
             'WHERE customer.id = "order".customer_id) AS anon_1 '
             'FROM customer'
     )
    def test_load_collection_entity(self):
        Customer = self.classes.Customer
        Order = self.classes.Order

        s = Session()

        n = orm_nested(s.query(Order).filter(Customer.orders))

        q = s.query(Customer, n).filter(Customer.id == 1)

        with self.assert_statement_count(1):
            eq_(
                q.all(),
                self._orm_fixture(orders=True)
            )
    def test_load_collection_mixed(self):
        Customer = self.classes.Customer
        Order = self.classes.Order

        s = Session()

        n = orm_nested(s.query(Order.id, Order).filter(Customer.orders))

        q = s.query(Customer, n).filter(Customer.id == 1)

        with self.assert_statement_count(1):
            eq_(q.all(), [(Customer(id=1, name='David McFarlane'), [
                (101, Order(customer_id=1, id=101,
                            order_info='apple related')),
                (102, Order(customer_id=1, id=102,
                            order_info='apple related')),
                (103, Order(customer_id=1, id=103, order_info='apple related'))
            ])])