Exemple #1
0
def test_punkt_geometri():
    p = Punkt()
    go = GeometriObjekt()
    go.geometri = Point([1, 2])
    p.geometriobjekter.append(go)
    assert p.geometri.koordinater[0] == 1
    assert p.geometri.koordinater[1] == 2
Exemple #2
0
def læs_lokation(lokation: str) -> GeometriObjekt:
    """Skab GeometriObjekt ud fra en brugerangivet lokationskoordinat"""

    lok = lokation.split()
    assert len(lok) in (
        2,
        4,
    ), f"Lokation '{lokation}' matcher ikke format: 55.443322 [N] 12.345678 [Ø]."
    if len(lok) == 2:
        lok = [lok[0], "", lok[1], ""]
    try:
        e = float(lok[2].replace(",", "."))
        n = float(lok[0].replace(",", "."))
    except ValueError as ex:
        fire.cli.print(
            f"Ikke-numerisk lokationskoordinat anført: {lokation} ({ex})")
        sys.exit(1)

    # Håndter verdenshjørner Nn/ØøEe/VvWw/Ss
    if lok[3].upper() in ("S", "N"):
        lok = [lok[2], lok[3], lok[0], lok[1]]
    if lok[1].upper() == "S":
        n = -n
    if lok[3].upper() in ("W", "V"):
        e = -e

    # Håndter UTM zone 32 og geografiske koordinater ensartet
    e, n = normaliser_lokationskoordinat(e, n)

    go = GeometriObjekt()
    go.geometri = Point([e, n])
    return go
Exemple #3
0
def test_indset_punkt_with_invalid_sagsevent_eventtype(firedb: FireDb,
                                                       sag: Sag):
    p = Punkt()
    go = GeometriObjekt()
    go.geometri = Point([1, 1])
    p.geometriobjekter.append(go)
    with pytest.raises(Exception, match="KOMMENTAR"):
        firedb.indset_punkt(Sagsevent(sag=sag, eventtype=EventType.KOMMENTAR),
                            p)
Exemple #4
0
def test_indset_flere_punkter(firedb: FireDb, sag: Sag):
    p = Punkt()
    go = GeometriObjekt()
    go.geometri = Point([1, 1])
    p.geometriobjekter.append(go)

    q = Punkt()
    go = GeometriObjekt()
    go.geometri = Point([2, 2])
    q.geometriobjekter.append(go)

    firedb.indset_sagsevent(
        Sagsevent(
            sag=sag,
            eventtype=EventType.PUNKT_OPRETTET,
            sagseventinfos=[
                SagseventInfo(beskrivelse="Testindsættelse af flere punkter")
            ],
            punkter=[p, q],
        ))
Exemple #5
0
def test_geometriobjekt_afregistrering(firedb: FireDb, sag: Sag):
    """
    Test at forudgående geometrier afregistreres korrekt ved indsættelse af ny.
    """

    p = firedb.hent_punkt("SKEJ")
    n = len(p.geometriobjekter)
    go = GeometriObjekt()
    go.geometri = Point([10.17983, 56.18759])
    go.punkt = p

    firedb.indset_sagsevent(
        Sagsevent(
            sag=sag,
            sagseventinfos=[SagseventInfo(beskrivelse="Opdater geometri")],
            eventtype=EventType.PUNKT_OPRETTET,
            geometriobjekter=[go],
        ))

    geom = p.geometriobjekter
    assert n + 1 == len(p.geometriobjekter)
    assert geom[-2].registreringtil == geom[-1].registreringfra
    assert geom[-2].sagseventtilid == geom[-1].sagseventfraid
Exemple #6
0
def test_indset_punkt(firedb: FireDb, sag: Sag):
    p = Punkt()
    go = GeometriObjekt()
    go.geometri = Point([1, 1])
    p.geometriobjekter.append(go)
    firedb.indset_punkt(Sagsevent(sag=sag), p)