Coverage for src/flag_gems/utils/models/session.py: 67%

12 statements  

« prev     ^ index     » next       coverage.py v7.6.9, created at 2026-03-28 12:23 +0800

1import sqlalchemy.exc 

2import sqlalchemy.orm 

3from typing_extensions import override 

4 

5 

6class RollbackSession(sqlalchemy.orm.Session): 

7 def __init__(self, *args, **kwargs) -> None: 

8 super().__init__(*args, **kwargs) 

9 

10 @override 

11 def commit(self) -> None: 

12 try: 

13 super().commit() 

14 except sqlalchemy.exc.IntegrityError: 

15 self.rollback()