(self, no_items=False)
| 1181 | self._run_double_test() |
| 1182 | |
| 1183 | def _run_double_test(self, no_items=False): |
| 1184 | User, Address, Order, Item = self.classes( |
| 1185 | "User", "Address", "Order", "Item" |
| 1186 | ) |
| 1187 | q = fixture_session().query(User).order_by(User.id) |
| 1188 | |
| 1189 | def items(*ids): |
| 1190 | if no_items: |
| 1191 | return {} |
| 1192 | else: |
| 1193 | return {"items": [Item(id=id_) for id_ in ids]} |
| 1194 | |
| 1195 | def go(): |
| 1196 | eq_( |
| 1197 | [ |
| 1198 | User( |
| 1199 | id=7, |
| 1200 | addresses=[Address(id=1)], |
| 1201 | open_orders=[Order(id=3, **items(3, 4, 5))], |
| 1202 | closed_orders=[ |
| 1203 | Order(id=1, **items(1, 2, 3)), |
| 1204 | Order(id=5, **items(5)), |
| 1205 | ], |
| 1206 | ), |
| 1207 | User( |
| 1208 | id=8, |
| 1209 | addresses=[ |
| 1210 | Address(id=2), |
| 1211 | Address(id=3), |
| 1212 | Address(id=4), |
| 1213 | ], |
| 1214 | open_orders=[], |
| 1215 | closed_orders=[], |
| 1216 | ), |
| 1217 | User( |
| 1218 | id=9, |
| 1219 | addresses=[Address(id=5)], |
| 1220 | open_orders=[Order(id=4, **items(1, 5))], |
| 1221 | closed_orders=[Order(id=2, **items(1, 2, 3))], |
| 1222 | ), |
| 1223 | User(id=10), |
| 1224 | ], |
| 1225 | q.all(), |
| 1226 | ) |
| 1227 | |
| 1228 | self.assert_sql_count(testing.db, go, 1) |
| 1229 | |
| 1230 | @testing.combinations( |
| 1231 | ("plain",), ("cte", testing.requires.ctes), ("subquery",), id_="s" |
no test coverage detected