()
| 20 | |
| 21 | |
| 22 | async def run(): |
| 23 | await Tortoise.init(db_url="sqlite://:memory:", modules={"models": ["__main__"]}) |
| 24 | await Tortoise.generate_schemas() |
| 25 | |
| 26 | try: |
| 27 | async with in_transaction() as connection: |
| 28 | event = Event(name="Test") |
| 29 | await event.save(using_db=connection) |
| 30 | await Event.filter(id=event.id).using_db(connection).update(name="Updated name") |
| 31 | saved_event = await Event.filter(name="Updated name").using_db(connection).first() |
| 32 | await connection.execute_query("SELECT * FROM non_existent_table") |
| 33 | except OperationalError: |
| 34 | pass |
| 35 | saved_event = await Event.filter(name="Updated name").first() |
| 36 | print(saved_event) |
| 37 | |
| 38 | @atomic() |
| 39 | async def bound_to_fall(): |
| 40 | event = await Event.create(name="Test") |
| 41 | await Event.filter(id=event.id).update(name="Updated name") |
| 42 | saved_event = await Event.filter(name="Updated name").first() |
| 43 | print(saved_event.name) |
| 44 | raise OperationalError() |
| 45 | |
| 46 | try: |
| 47 | await bound_to_fall() |
| 48 | except OperationalError: |
| 49 | pass |
| 50 | saved_event = await Event.filter(name="Updated name").first() |
| 51 | print(saved_event) |
| 52 | |
| 53 | |
| 54 | if __name__ == "__main__": |
no test coverage detected