Changed create_wrmap to the new json definition. The test for parse_googlemap passes...
[philipp/winterrodeln/wrpylib.git] / tests / test_wrmwmarkup.py
index 9fff75f16e0dd6dd0d759cab5b94a96adcce68a7..77005dbc1fb712ca8be3ea78e541308702f30a25 100644 (file)
@@ -1,4 +1,4 @@
-#!/usr/bin/python2.6
+#!/usr/bin/python2.7
 # -*- coding: iso-8859-15 -*-
 import wrpylib.wrmwmarkup
 import formencode
@@ -56,3 +56,126 @@ def test_gasthausbox_to_inn():
     start, end, inn = wrpylib.wrmwmarkup.gasthausbox_to_inn(wikitext)
     wrpylib.wrmwmarkup.inn_to_gasthausbox(inn)
 
+
+def test_parse_googlemap():
+    wikitext = u'''
+    <googlemap version="0.9" lat="47.113291" lon="11.272337" zoom="15">
+    (Parkplatz)47.114958,11.266026
+    Erster Parkplatz
+    
+    (Gasthaus) 47.114715, 11.266262, Alt Bärnbad (Gasthaus)
+    6#FF014E9A
+    47.114715,11.266262
+    47.114135,11.268381
+    47.113421,11.269322
+    47.11277,11.269979
+    47.112408,11.271119
+    </googlemap>
+    '''
+    json = wrpylib.wrmwmarkup.parse_googlemap(wikitext)
+    assert json['properties']['lon'] == 11.272337
+    assert json['properties']['lat'] == 47.113291
+    assert json['properties']['zoom'] == 15
+    assert json['features'][0]['properties']['type'] == 'parkplatz'
+    assert json['features'][0]['properties']['name'] == 'Erster Parkplatz'
+    assert json['features'][0]['geometry']['coordinates'] == [11.266026, 47.114958]
+    assert json['features'][1]['properties']['type'] == 'gasthaus'
+    assert json['features'][1]['properties']['name'] == u'Alt Bärnbad (Gasthaus)'
+    assert json['features'][1]['geometry']['coordinates'] == [11.266262, 47.114715]
+    assert json['features'][2]['properties']['type'] == 'rodelbahn'
+    assert json['features'][2]['geometry']['coordinates'] == [
+        [11.266262, 47.114715],
+        [11.268381, 47.114135],
+        [11.269322, 47.113421],
+        [11.269979, 47.11277],
+        [11.271119, 47.112408]]
+
+
+def test_parse_wrmap():
+    wikitext = u'''
+    <wrmap lat="47.2417134" lon="11.21408895" zoom="14" width="700" height="400">
+    <gasthaus name="Rosskogelhütte" wiki="Rosskogelhütte">47.240689 11.190454</gasthaus>
+    <parkplatz>47.245789 11.238971</parkplatz>
+    <haltestelle name="Oberperfuss Rangger Köpfl Lift">47.245711 11.238283</haltestelle>
+    <rodelbahn>
+        47.238587 11.203360
+        47.244951 11.230868
+        47.245470 11.237853
+    </rodelbahn>
+    </wrmap>
+    '''
+    json = wrpylib.wrmwmarkup.parse_wrmap(wikitext)
+    assert json['properties']['lon'] == 11.21408895
+    assert json['properties']['lat'] == 47.2417134
+    assert json['properties']['zoom'] == 14
+    assert json['properties']['width'] == 700
+    assert json['properties']['height'] == 400
+    assert json['features'][0]['properties']['type'] == 'gasthaus'
+    assert json['features'][0]['properties']['name'] == u'Rosskogelhütte'
+    assert json['features'][0]['properties']['wiki'] == u'Rosskogelhütte'
+    assert json['features'][0]['geometry']['coordinates'] == [11.190454, 47.240689]
+    assert json['features'][1]['properties']['type'] == 'parkplatz'
+    assert json['features'][1]['geometry']['coordinates'] == [11.238971, 47.245789]
+    assert json['features'][2]['properties']['type'] == 'haltestelle'
+    assert json['features'][2]['properties']['name'] == u'Oberperfuss Rangger Köpfl Lift'
+    assert json['features'][2]['geometry']['coordinates'] == [11.238283, 47.245711]
+    assert json['features'][3]['properties']['type'] == 'rodelbahn'
+    assert json['features'][3]['geometry']['coordinates'] == [
+        [11.203360, 47.238587],
+        [11.230868, 47.244951],
+        [11.237853, 47.245470]]
+
+
+def test_create_wrmap():
+    geojson = {
+        'type': 'FeatureCollection',
+        'features':
+            [{
+                'type': 'Feature',
+                'geometry': {
+                    'type': 'Point',
+                    'coordinates': [11.190454, 47.240689]},
+                'properties': {'type': 'inn', 'name': u'Rosskogelhütte', 'wiki': u'Rosskogelhütte'}
+            }, {
+                'type': 'Feature',
+                'geometry': {
+                    'type': 'Point',
+                    'coordinates': [11.238971, 47.245789]},
+                'properties': {'type': 'carpark'}
+            }, {
+                'type': 'Feature',
+                'geometry': {
+                    'type': 'Point',
+                    'coordinates': [11.238283, 47.245711]},
+                'properties': {'type': 'busstop', 'name': u'Oberperfuss Rangger Köpfl Lift'}
+            }, {
+                'type': 'Feature',
+                'geometry': {
+                    'type': 'LineString',
+                    'coordinates': [
+                        [11.203360, 47.238587],
+                        [11.230868, 47.244951],
+                        [11.237853, 47.245470]]},
+                'properties': {'type': 'sledrun'}
+            }],
+        'properties': {
+            'lon': 11.21408895,
+            'lat': 47.2417134,
+            'zoom': 14,
+            'width': 700,
+            'height': 400}
+    }
+
+    wikitext = wrpylib.wrmwmarkup.create_wrmap(geojson)
+    assert wikitext == u'''
+    <wrmap lat="47.2417134" lon="11.21408895" zoom="14" width="700" height="400">
+    <gasthaus name="Rosskogelhütte" wiki="Rosskogelhütte">47.240689 11.190454</gasthaus>
+    <parkplatz>47.245789 11.238971</parkplatz>
+    <haltestelle name="Oberperfuss Rangger Köpfl Lift">47.245711 11.238283</haltestelle>
+    <rodelbahn>
+        47.238587 11.203360
+        47.244951 11.230868
+        47.245470 11.237853
+    </rodelbahn>
+    </wrmap>'''
+