(self, op, trigger)
| 256 | ) |
| 257 | @testing.combinations("commit", "close", "rollback", None, argnames="op") |
| 258 | def test_no_autobegin(self, op, trigger): |
| 259 | User, users = self.classes.User, self.tables.users |
| 260 | Address, addresses = self.classes.Address, self.tables.addresses |
| 261 | |
| 262 | self.mapper_registry.map_imperatively( |
| 263 | User, users, properties={"addresses": relationship(Address)} |
| 264 | ) |
| 265 | self.mapper_registry.map_imperatively(Address, addresses) |
| 266 | |
| 267 | with Session(testing.db) as sess: |
| 268 | sess.add(User(name="u1")) |
| 269 | sess.commit() |
| 270 | |
| 271 | s = Session(testing.db, autobegin=False) |
| 272 | |
| 273 | orm_trigger = trigger == "lazyload" or trigger == "unitofwork" |
| 274 | with expect_raises_message( |
| 275 | exc.InvalidRequestError, |
| 276 | r"Autobegin is disabled on this Session; please call " |
| 277 | r"session.begin\(\) to start a new transaction", |
| 278 | ): |
| 279 | if op or orm_trigger: |
| 280 | s.begin() |
| 281 | |
| 282 | is_true(s.in_transaction()) |
| 283 | |
| 284 | if orm_trigger: |
| 285 | u1 = s.scalar(select(User).filter_by(name="u1")) |
| 286 | else: |
| 287 | eq_(s.scalar(select(1)), 1) |
| 288 | |
| 289 | if op: |
| 290 | getattr(s, op)() |
| 291 | elif orm_trigger: |
| 292 | s.rollback() |
| 293 | |
| 294 | is_false(s.in_transaction()) |
| 295 | |
| 296 | if trigger == "select1": |
| 297 | s.execute(select(1)) |
| 298 | elif trigger == "lazyload": |
| 299 | if op == "close": |
| 300 | s.add(u1) |
| 301 | else: |
| 302 | u1.addresses |
| 303 | elif trigger == "unitofwork": |
| 304 | s.add(u1) |
| 305 | |
| 306 | s.begin() |
| 307 | if trigger == "select1": |
| 308 | s.execute(select(1)) |
| 309 | elif trigger == "lazyload": |
| 310 | if op == "close": |
| 311 | s.add(u1) |
| 312 | u1.addresses |
| 313 | |
| 314 | is_true(s.in_transaction()) |
| 315 |
nothing calls this directly
no test coverage detected