Beispiel #1
0
def test_afregistrering_punktinfo(firedb: FireDb, sag: Sag, punkt: Punkt,
                                  punktinformationtype: PunktInformationType):
    """
    Test trigger punktinfo_biu_trg - Automatisk afrestrering af tidligere punktinfo.
    """
    p1 = PunktInformation(
        punkt=punkt,
        infotype=punktinformationtype,
        _registreringfra=dt.datetime(2020, 9, 22, 19, 50),
    )
    se = Sagsevent(sag=sag, eventtype=EventType.PUNKTINFO_TILFOEJET)
    se.punktinformationer = [p1]
    firedb.session.add(se)
    firedb.session.commit()

    p2 = PunktInformation(
        punkt=punkt,
        infotype=punktinformationtype,
        _registreringfra=dt.datetime(2020, 9, 22, 19, 52),
    )
    se = Sagsevent(sag=sag, eventtype=EventType.PUNKTINFO_TILFOEJET)
    se.punktinformationer = [p2]
    firedb.session.add(se)
    firedb.session.commit()

    firedb.session.refresh(p1)
    firedb.session.refresh(p2)

    assert p1.registreringtil == p2.registreringfra
    assert p1.sagseventtilid == p2.sagseventfraid
    assert p2.registreringtil is None
    assert p2.sagseventtilid is None
Beispiel #2
0
def test_punktinfoanvendelsestype(firedb: FireDb, sagsevent: Sagsevent,
                                  punkt: Punkt):
    """
    Tester validering af anvendelsestype i triggeren punktinfo_biu_trg
    """
    infotype_flag = firedb.hent_punktinformationtype("ATTR:tabtgået")
    flaginfo = PunktInformation(
        infotype=infotype_flag,
        punkt=punkt,
        tekst="tekst",
        tal=999,
    )
    sagsevent.punktinformationer = [flaginfo]
    firedb.session.add(sagsevent)

    with pytest.raises(DatabaseError):
        firedb.session.commit()
    firedb.session.rollback()

    infotype_tekst = firedb.hent_punktinformationtype("IDENT:GNSS")
    tekstinfo = PunktInformation(
        infotype=infotype_tekst,
        punkt=punkt,
        tekst=None,
        tal=None,
    )
    sagsevent.punktinformationer = [tekstinfo]
    firedb.session.add(sagsevent)

    with pytest.raises(DatabaseError):
        firedb.session.commit()
    firedb.session.rollback()

    infotype_tal = PunktInformationType(
        name="ATTR:tal",
        anvendelse=PunktInformationTypeAnvendelse.TAL,
        beskrivelse="Test",
        infotypeid=999,
    )
    talinfo = PunktInformation(
        infotype=infotype_tal,
        punkt=punkt,
        tekst=None,
        tal=None,
    )
    sagsevent.punktinformationer = [talinfo]
    firedb.session.add(sagsevent)

    with pytest.raises(DatabaseError):
        firedb.session.commit()
    firedb.session.rollback()