Skip to content

Commit

Permalink
Reduce mypy errors in tests, fix round bug in float_subelement
Browse files Browse the repository at this point in the history
  • Loading branch information
cleder committed Dec 21, 2023
1 parent 422d600 commit ac3bba0
Show file tree
Hide file tree
Showing 6 changed files with 50 additions and 44 deletions.
2 changes: 1 addition & 1 deletion fastkml/helpers.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ def float_subelement(
element,
f"{obj.ns}{node_name}",
)
subelement.text = str(round(getattr(obj, attr_name), precision))
subelement.text = str(getattr(obj, attr_name))


def enum_subelement(
Expand Down
3 changes: 3 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,9 @@ ignore_errors = false
ignore_missing_imports = true
implicit_reexport = false
no_implicit_optional = true
overrides = [
{ disable_error_code = "attr-defined, union-attr", module = "tests.*" },
]
show_error_codes = true
strict_equality = true
strict_optional = true
Expand Down
12 changes: 7 additions & 5 deletions tests/links_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,23 +27,25 @@ class TestStdLibrary(StdLibrary):

def test_icon(self) -> None:
"""Test the Icon class."""
icon = links.Icon(
icon_0 = links.Icon(
id="icon-01",
href="http://maps.google.com/mapfiles/kml/paddle/red-circle.png",
refresh_mode="onInterval",
refresh_mode=RefreshMode("onInterval"),
refresh_interval=60,
view_refresh_mode="onStop",
view_refresh_mode=ViewRefreshMode("onStop"),
view_refresh_time=4,
view_bound_scale=1.2,
view_format="BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]",
http_query="clientName=fastkml",
)

icon = links.Icon.class_from_string(icon_0.to_string())

assert icon.id == "icon-01"
assert icon.href == "http://maps.google.com/mapfiles/kml/paddle/red-circle.png"
assert icon.refresh_mode == "onInterval"
assert icon.refresh_mode == RefreshMode("onInterval")
assert icon.refresh_interval == 60
assert icon.view_refresh_mode == "onStop"
assert icon.view_refresh_mode == ViewRefreshMode("onStop")
assert icon.view_refresh_time == 4
assert icon.view_bound_scale == 1.2
assert icon.view_format == "BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]"
Expand Down
1 change: 1 addition & 0 deletions tests/oldunit_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -744,6 +744,7 @@ def test_balloonstyle(self) -> None:
assert style_1.bg_color == "ffffffbb"
assert style_1.text_color == "ff000000"
assert style_1.display_mode == DisplayMode.default
assert style_1.text
assert "$[geDirections]" in style_1.text
assert "$[description]" in style_1.text
k2 = kml.KML.class_from_string(k.to_string())
Expand Down
74 changes: 37 additions & 37 deletions tests/styles_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ def test_icon_style(self) -> None:
assert 'targetId="target-0"' in serialized
assert "<kml:color>ff0000ff</kml:color>" in serialized
assert "<kml:colorMode>random</kml:colorMode>" in serialized
assert "<kml:scale>1</kml:scale>" in serialized
assert "<kml:scale>1.0</kml:scale>" in serialized
assert "<kml:heading>0</kml:heading>" in serialized
assert "<kml:Icon>" in serialized
assert "<kml:href>http://example.com/icon.png</kml:href>" in serialized
Expand Down Expand Up @@ -101,7 +101,7 @@ def test_line_style(self) -> None:
target_id="target-0",
color="ff0000ff",
color_mode=ColorMode.normal,
width=1.0,
width=1.2,
)

serialized = lines.to_string()
Expand All @@ -111,7 +111,7 @@ def test_line_style(self) -> None:
assert 'targetId="target-0"' in serialized
assert "<kml:color>ff0000ff</kml:color>" in serialized
assert "<kml:colorMode>normal</kml:colorMode>" in serialized
assert "<kml:width>1</kml:width>" in serialized
assert "<kml:width>1.2</kml:width>" in serialized
assert "</kml:LineStyle>" in serialized

def test_line_style_read(self) -> None:
Expand All @@ -136,8 +136,8 @@ def test_poly_style(self) -> None:
target_id="target-0",
color="ff0000ff",
color_mode=ColorMode.random,
fill=0,
outline=1,
fill=False,
outline=True,
)

serialized = ps.to_string()
Expand Down Expand Up @@ -175,7 +175,7 @@ def test_label_style(self) -> None:
target_id="target-0",
color="ff0000ff",
color_mode=ColorMode.random,
scale=1.0,
scale=1.434,
)

serialized = ls.to_string()
Expand All @@ -187,7 +187,7 @@ def test_label_style(self) -> None:
assert 'targetId="target-0"' in serialized
assert "<kml:color>ff0000ff</kml:color>" in serialized
assert "<kml:colorMode>random</kml:colorMode>" in serialized
assert "<kml:scale>1</kml:scale>" in serialized
assert "<kml:scale>1.434</kml:scale>" in serialized
assert "</kml:LabelStyle>" in serialized

def test_label_style_read(self) -> None:
Expand Down Expand Up @@ -284,8 +284,8 @@ def test_style(self) -> None:
target_id="target-p0",
color="ff0000ff",
color_mode=ColorMode.random,
fill=0,
outline=1,
fill=False,
outline=True,
)
style = styles.Style(
id="id-0",
Expand Down Expand Up @@ -351,37 +351,37 @@ def test_style_read(self) -> None:
assert style.target_id == "target-0"
assert style.styles[0].id == "id-b0"
assert style.styles[0].target_id == "target-b0"
assert style.styles[0].bg_color == "7fff0000" # type: ignore[union-attr]
assert style.styles[0].text_color == "ff00ff00" # type: ignore[union-attr]
assert style.styles[0].text == "<b>Hello</b>" # type: ignore[union-attr]
assert style.styles[0].display_mode == DisplayMode.hide # type: ignore[union-attr]
assert style.styles[0].bg_color == "7fff0000"
assert style.styles[0].text_color == "ff00ff00"
assert style.styles[0].text == "<b>Hello</b>"
assert style.styles[0].display_mode == DisplayMode.hide

assert style.styles[1].id == "id-i0"
assert style.styles[1].target_id == "target-i0"
assert style.styles[1].color == "ff0000ff" # type: ignore[union-attr]
assert style.styles[1].color_mode == ColorMode.random # type: ignore[union-attr]
assert style.styles[1].scale == 1.0 # type: ignore[union-attr]
assert style.styles[1].heading == 0 # type: ignore[union-attr]
assert style.styles[1].icon.href == "http://example.com/icon.png" # type: ignore[union-attr]
assert style.styles[1].color == "ff0000ff"
assert style.styles[1].color_mode == ColorMode.random
assert style.styles[1].scale == 1.0
assert style.styles[1].heading == 0
assert style.styles[1].icon.href == "http://example.com/icon.png"

assert style.styles[2].id == "id-a0"
assert style.styles[2].target_id == "target-a0"
assert style.styles[2].color == "ff0000ff" # type: ignore[union-attr]
assert style.styles[2].color_mode == ColorMode.random # type: ignore[union-attr]
assert style.styles[2].scale == 1.0 # type: ignore[union-attr]
assert style.styles[2].color == "ff0000ff"
assert style.styles[2].color_mode == ColorMode.random
assert style.styles[2].scale == 1.0

assert style.styles[3].id == "id-l0"
assert style.styles[3].target_id == "target-l0"
assert style.styles[3].color == "ff0000ff" # type: ignore[union-attr]
assert style.styles[3].color_mode == ColorMode.normal # type: ignore[union-attr]
assert style.styles[3].width == 1.0 # type: ignore[union-attr]
assert style.styles[3].color == "ff0000ff"
assert style.styles[3].color_mode == ColorMode.normal
assert style.styles[3].width == 1.0

assert style.styles[4].id == "id-p0"
assert style.styles[4].target_id == "target-p0"
assert style.styles[4].color == "ff0000ff" # type: ignore[union-attr]
assert style.styles[4].color_mode == ColorMode.random # type: ignore[union-attr]
assert style.styles[4].fill == 0 # type: ignore[union-attr]
assert style.styles[4].outline == 1 # type: ignore[union-attr]
assert style.styles[4].color == "ff0000ff"
assert style.styles[4].color_mode == ColorMode.random
assert style.styles[4].fill == 0
assert style.styles[4].outline == 1

def test_stylemap(self) -> None:
url = styles.StyleUrl(id="id-0", url="#style-0", target_id="target-0")
Expand Down Expand Up @@ -421,8 +421,8 @@ def test_stylemap(self) -> None:
target_id="target-p0",
color="ff0000ff",
color_mode=ColorMode.random,
fill=0,
outline=1,
fill=False,
outline=True,
)
style = styles.Style(
id="id-0",
Expand Down Expand Up @@ -453,7 +453,7 @@ def test_stylemap(self) -> None:
assert "<kml:IconStyle " in serialized
assert "<kml:color>ff0000ff</kml:color>" in serialized
assert "<kml:colorMode>random</kml:colorMode>" in serialized
assert "<kml:scale>1</kml:scale>" in serialized
assert "<kml:scale>1.0</kml:scale>" in serialized
assert "<kml:heading>0</kml:heading>" in serialized
assert "<kml:Icon>" in serialized
assert "<kml:href>http://example.com/icon.png</kml:href>" in serialized
Expand All @@ -462,7 +462,7 @@ def test_stylemap(self) -> None:
assert "<kml:LineStyle " in serialized
assert "<kml:color>ff0000ff</kml:color>" in serialized
assert "<kml:colorMode>normal</kml:colorMode>" in serialized
assert "<kml:width>1</kml:width>" in serialized
assert "<kml:width>1.0</kml:width>" in serialized
assert "</kml:LineStyle>" in serialized
assert "<kml:BalloonStyle " in serialized
assert "<kml:bgColor>7fff0000</kml:bgColor>" in serialized
Expand All @@ -473,7 +473,7 @@ def test_stylemap(self) -> None:
assert "<kml:LabelStyle " in serialized
assert "<kml:color>ff0000ff</kml:color>" in serialized
assert "<kml:colorMode>random</kml:colorMode>" in serialized
assert "<kml:scale>1</kml:scale>" in serialized
assert "<kml:scale>1.0</kml:scale>" in serialized
assert "</kml:LabelStyle>" in serialized
assert "<kml:PolyStyle " in serialized
assert "<kml:color>ff0000ff</kml:color>" in serialized
Expand Down Expand Up @@ -536,10 +536,10 @@ def test_stylemap_read(self) -> None:

assert sm.id == "id-sm-0"
assert sm.target_id == "target-sm-0"
assert sm.normal.id == "id-0" # type: ignore[union-attr]
assert sm.normal.target_id == "target-0" # type: ignore[union-attr]
assert sm.highlight.id == "id-u0" # type: ignore[union-attr]
assert sm.highlight.target_id == "target-u0" # type: ignore[union-attr]
assert sm.normal.id == "id-0"
assert sm.normal.target_id == "target-0"
assert sm.highlight.id == "id-u0"
assert sm.highlight.target_id == "target-u0"


class TestLxml(Lxml, TestStdLibrary):
Expand Down
2 changes: 1 addition & 1 deletion tests/times_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ def test_kml_datetime_datetime_implicit(self) -> None:

def test_kml_datetime_no_datetime(self) -> None:
"""When we pass dt as None bool() should return False."""
kdt = KmlDateTime(None)
kdt = KmlDateTime(None) # type: ignore[arg-type]

assert kdt.resolution == DateTimeResolution.date
assert not bool(kdt)
Expand Down

0 comments on commit ac3bba0

Please sign in to comment.