File: utils.py

package info (click to toggle)
python-django-pgtrigger 4.15.3-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 956 kB
  • sloc: python: 4,412; makefile: 114; sh: 8; sql: 2
file content (20 lines) | stat: -rw-r--r-- 612 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import contextlib

import pytest
from django.db import DEFAULT_DB_ALIAS, connections
from django.db import transaction as db_transaction
from django.db.utils import DatabaseError


@contextlib.contextmanager
def raises_trigger_error(match=None, database=DEFAULT_DB_ALIAS, transaction=None):
    with contextlib.ExitStack() as stack:
        stack.enter_context(pytest.raises(DatabaseError, match=match))

        if transaction is None:
            transaction = connections[database].in_atomic_block

        if transaction:
            stack.enter_context(db_transaction.atomic(using=database))

        yield