import wrpylib.wrmwmarkup
from wrpylib.wrvalidators import LonLat
from wrpylib.wrmwmarkup import sledrun_from_rodelbahnbox, sledrun_to_rodelbahnbox, \
- inn_from_gasthausbox, inn_to_gasthausbox, lonlat_ele_from_template, latlon_ele_to_template, create_sledrun_wiki
+ inn_from_gasthausbox, inn_to_gasthausbox, lonlat_ele_from_template, latlon_ele_to_template, create_sledrun_wiki, \
+ lonlat_to_json, lonlat_ele_to_json
class TestSledrun(unittest.TestCase):
template = latlon_ele_to_template((LonLat(11.468819, 46.942239), 1866), 'Position oben')
self.assertEqual('{{Position oben|46.942239 N 11.468819 E|1866}}', template)
+ def test_lonlat_to_json(self):
+ actual = lonlat_to_json(LonLat(11.2, 47.6))
+ self.assertEqual({'longitude': 11.2, 'latitude': 47.6}, actual)
+
+ def test_lonlat_ele_to_json(self):
+ actual = lonlat_ele_to_json(LonLat(12.3, 42.9), 420)
+ expected = {'position': {'longitude': 12.3, 'latitude': 42.9}, 'elevation': 420}
+ self.assertEqual(expected, actual)
+
+ actual = lonlat_ele_to_json(LonLat(13.0, 40.1), None)
+ expected = {'position': {'longitude': 13.0, 'latitude': 40.1}}
+ self.assertEqual(expected, actual)
+
+ actual = lonlat_ele_to_json(None, 1580)
+ expected = {'elevation': 1580}
+ self.assertEqual(expected, actual)
+
+ self.assertEqual({}, lonlat_ele_to_json(None, None))
+
class TestWrMap(unittest.TestCase):
def test_parse_wrmap(self):
return template
+def lonlat_to_json(lonlat: LonLat) -> dict:
+ return {'longitude': lonlat.lon, 'latitude': lonlat.lat}
+
+
+def lonlat_ele_to_json(lonlat: Optional[LonLat], ele: Optional[int]) -> dict:
+ result = {}
+ if lonlat is not None:
+ result['position'] = lonlat_to_json(lonlat)
+ if ele is not None:
+ result['elevation'] = ele
+ return result
+
+
class ParseError(RuntimeError):
"""Exception used by some of the functions"""
pass