GitHub

Użyj danych TEST

Twórz sandboxowe podmioty, osoby, uprawnienia, flagi załączników i blokady kontekstów w TEST.

Na tej stronie

Używaj client.testdata tylko z Environment.TEST. Te helpery modyfikują dane sandboxa KSeF, dzięki czemu testy i demo mogą tworzyć znane konteksty.

Utwórz dane sandboxa ręcznie

Bezpośrednich metod używaj dla współdzielonych fixture'ów, które mają przetrwać wiele uruchomień testów.

Podmiot

client.testdata.create_subject(
    nip="5261040828",
    subject_type="vat_group",
    description="Sandbox company",
)

client.testdata.enable_attachments(nip="5261040828")
python

Osoba

client.testdata.create_person(
    nip="5261040828",
    pesel="90010112345",
    description="Sandbox person",
)
python

Blokada kontekstu

from ksef2.models import AuthContextIdentifier

context = AuthContextIdentifier(type="nip", value="5261040828")

client.testdata.block_context(context=context)
client.testdata.unblock_context(context=context)
python

Usuń współdzielone fixture'y jawnie, gdy nie są już potrzebne:

client.testdata.delete_person(nip="5261040828")
client.testdata.delete_subject(nip="5261040828")
python

Użyj temporal cleanup

temporal() zapisuje mutacje i próbuje posprzątać je best-effort po wyjściu z bloku.

Podmiot i załączniki

with client.testdata.temporal() as data:
    data.create_subject(
        nip="5261040828",
        subject_type="vat_group",
        description="Integration test subject",
    )
    data.enable_attachments(nip="5261040828")
python

Uprawnienia

from ksef2.models import Identifier, Permission

with client.testdata.temporal() as data:
    data.grant_permissions(
        permissions=[
            Permission(type="invoice_read", description="Read invoices"),
        ],
        grant_to=Identifier(type="nip", value="1111111111"),
        in_context_of=Identifier(type="nip", value="5261040828"),
    )
python

Blokada kontekstu

from ksef2.models import AuthContextIdentifier

context = AuthContextIdentifier(type="nip", value="5261040828")

with client.testdata.temporal() as data:
    data.block_context(context=context)
python

Generowanie identyfikatorów

ksef2.testdata generuje numery NIP i PESEL z poprawną sumą kontrolną, dzięki czemu każde uruchomienie testów może użyć nowych podmiotów w sandboxie:

from ksef2.testdata import generate_nip, generate_pesel

nip = generate_nip()
pesel = generate_pesel()
python

Zalecany przepływ

  1. Utwórz tylko podmioty, osoby, uprawnienia, flagi załączników albo blokady kontekstów wymagane przez test.

  2. Użyj temporal() dla fixture'ów, które powinny zostać posprzątane automatycznie.

  3. Użyj bezpośrednich metod create/delete dla fixture'ów współdzielonych przez wiele uruchomień testów.

  4. Trzymaj wygenerowane identyfikatory w konfiguracji testów, nie produkcji.

Następne przepływy