db_query / tests /test_kml_creator.py
DavMelchi's picture
Add site and sector KML map creator
e36a82b
import pandas as pd
from utils.kml_creator import (
generate_kml_from_df,
generate_site_kml_from_df,
kml_color_to_rgba,
sector_polygon_coordinates,
)
def test_generate_kml_from_df_formats_integer_like_site_codes_without_decimal():
df = pd.DataFrame(
[
{
"code": 694.0,
"name": "694_TEST",
"Longitude": -7.1,
"Latitude": 12.3,
"Azimut": 30,
"Hauteur": 40,
"band": "G900",
"color": "7fff0000",
"size": 100,
}
]
)
kml_text = generate_kml_from_df(df).getvalue().decode("utf-8")
assert "<name>694</name>" in kml_text
assert "<name>694.0</name>" not in kml_text
def test_sector_polygon_coordinates_closes_polygon():
row = {
"Longitude": -7.1,
"Latitude": 12.3,
"Azimut": 90,
"size": 100,
}
coords = sector_polygon_coordinates(row)
assert len(coords) == 22
assert coords[0] == (-7.1, 12.3)
assert coords[-1] == coords[0]
def test_kml_color_to_rgba_converts_aabbggrr():
assert kml_color_to_rgba("7f0000ff") == [255, 0, 0, 127]
assert kml_color_to_rgba("bad") == [31, 119, 180, 127]
def test_generate_site_kml_from_df_exports_site_points_and_metadata():
df = pd.DataFrame(
[
{
"site": "S001",
"lat": 12.3,
"lon": -7.1,
"region": "North",
}
]
)
icon_href = "http://maps.google.com/mapfiles/kml/shapes/star.png"
kml_text = (
generate_site_kml_from_df(df, "site", "lat", "lon", icon_href=icon_href)
.getvalue()
.decode("utf-8")
)
assert "<name>S001</name>" in kml_text
assert f"<href>{icon_href}</href>" in kml_text
assert "&lt;b&gt;region:&lt;/b&gt; North&lt;br&gt;" in kml_text
assert "-7.1,12.3,0.0" in kml_text