|
|
|
|
@ -380,6 +380,53 @@ def test_build_topology_includes_peer_display_fields() -> None:
|
|
|
|
|
assert peer["slots"] == "2"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_build_topology_includes_peer_coordinates(validator: jsonschema.Draft202012Validator) -> None:
|
|
|
|
|
systems = {
|
|
|
|
|
"MASTER-A": {
|
|
|
|
|
"MODE": "MASTER",
|
|
|
|
|
"ENABLED": True,
|
|
|
|
|
"PEERS": {
|
|
|
|
|
bytes_3(3120001): {
|
|
|
|
|
"CONNECTION": "YES",
|
|
|
|
|
"CALLSIGN": b"CE5RPY ",
|
|
|
|
|
"LATITUDE": b"-33.4489\x00",
|
|
|
|
|
"LONGITUDE": b"-70.6693\x00",
|
|
|
|
|
"HEIGHT": b"12\x00",
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
doc = build_topology(systems, seq=1, ts=1.0)
|
|
|
|
|
validator.validate(doc)
|
|
|
|
|
peer = doc["systems"][0]["peers"][0]
|
|
|
|
|
assert peer["latitude"] == "-33.4489"
|
|
|
|
|
assert peer["longitude"] == "-70.6693"
|
|
|
|
|
assert peer["height"] == "12"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_build_topology_omits_empty_peer_coordinates() -> None:
|
|
|
|
|
systems = {
|
|
|
|
|
"MASTER-A": {
|
|
|
|
|
"MODE": "MASTER",
|
|
|
|
|
"ENABLED": True,
|
|
|
|
|
"PEERS": {
|
|
|
|
|
bytes_3(3120001): {
|
|
|
|
|
"CONNECTION": "YES",
|
|
|
|
|
"CALLSIGN": b"CE5RPY ",
|
|
|
|
|
"LATITUDE": b"",
|
|
|
|
|
"LONGITUDE": b"",
|
|
|
|
|
"HEIGHT": b"",
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
doc = build_topology(systems, seq=1, ts=1.0)
|
|
|
|
|
peer = doc["systems"][0]["peers"][0]
|
|
|
|
|
assert "latitude" not in peer
|
|
|
|
|
assert "longitude" not in peer
|
|
|
|
|
assert "height" not in peer
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def test_topology_strips_nul_padded_callsign() -> None:
|
|
|
|
|
systems = {
|
|
|
|
|
"MASTER-A": {
|
|
|
|
|
|