Removed unnecessary call to rstrip.
[philipp/winterrodeln/wrpylib.git] / tests / test_wrmwmarkup.py
1 #!/usr/bin/python2.7
2 # -*- coding: iso-8859-15 -*-
3 import wrpylib.wrmwmarkup
4 import wrpylib.mwmarkup
5 import formencode
6 import textwrap
7
8
9 def test_rodelbahnbox_to_sledrun():
10     wikitext = u'''== Allgemeines ==
11     {{Rodelbahnbox
12     | Position             = 47.309820 N 9.986508 E
13     | Position oben        = 
14     | Höhe oben            = 1244
15     | Position unten       = 
16     | Höhe unten           = 806
17     | Länge                = 5045
18     | Schwierigkeit        = 
19     | Lawinen              = gelegentlich
20     | Betreiber            = 
21     | Öffentliche Anreise  = Ja
22     | Gehzeit              = 105
23     | Aufstieg getrennt    = Nein
24     | Aufstiegshilfe       = Nein
25     | Beleuchtungsanlage   = Nein
26     | Beleuchtungstage     = 
27     | Rodelverleih         = Ja
28     | Gütesiegel           = 
29     | Webauskunft          = 
30     | Telefonauskunft      = +43-664-1808482 (Bergkristallhütte)
31     | Bild                 = Rodelbahn Bergkristallhütte 2009-03-03.jpg
32     | In Übersichtskarte   = Ja
33     | Forumid              = 72
34     }}
35     Die Rodelbahn zur Bergkristallhütte ist durchaus abwechslungsreich.'''
36     start, end, sledrun = wrpylib.wrmwmarkup.rodelbahnbox_to_sledrun(wikitext)
37     wrpylib.wrmwmarkup.sledrun_to_rodelbahnbox(sledrun, '1.3')
38
39
40
41 def test_gasthausbox_to_inn():
42     wikitext = u'''{{Gasthausbox
43     | Position          = 47.295549 N 9.986970 E
44     | Höhe              = 1250
45     | Betreiber         = 
46     | Sitzplätze        = 
47     | Übernachtung      = 
48     | Rauchfrei         = Nein
49     | Rodelverleih      = 
50     | Handyempfang      = A1; T-Mobile/Telering
51     | Homepage          = http://www.bergkristallhuette.com/
52     | E-Mail            = bergkristallhuette@gmx.at
53     | Telefon           = +43-664-1808482
54     | Bild              = Bergkritsallhütte 2009-02-07.JPG
55     | Rodelbahnen       = [[Bergkristallhütte]]
56     }}
57     Die Bergkristallhütte ist Teil des Boden-Vorsäß.'''
58     start, end, inn = wrpylib.wrmwmarkup.gasthausbox_to_inn(wikitext)
59     wrpylib.wrmwmarkup.inn_to_gasthausbox(inn)
60
61
62 def test_googlemap_to_wrmap():
63     wikitext = u'''
64     <googlemap version="0.9" lat="47.113291" lon="11.272337" zoom="15" height="450">
65     (Parkplatz)47.114958,11.266026
66     Erster Parkplatz
67     
68     (Gasthaus) 47.114715, 11.266262, Alt Bärnbad (Gasthaus)
69     6#FF014E9A
70     47.114715,11.266262
71     47.114135,11.268381
72     47.113421,11.269322
73     47.11277,11.269979
74     47.112408,11.271119
75     </googlemap>
76     '''
77     attributes, coords, paths = wrpylib.mwmarkup.parse_googlemap(wikitext)
78     json = wrpylib.wrmwmarkup.googlemap_to_wrmap(attributes, coords, paths)
79     assert json['properties']['lon'] == 11.272337
80     assert json['properties']['lat'] == 47.113291
81     assert json['properties']['zoom'] == 15
82     assert json['properties']['height'] == 450
83     assert json['features'][0]['properties']['type'] == 'parkplatz'
84     assert json['features'][0]['properties']['name'] == 'Erster Parkplatz'
85     assert json['features'][0]['geometry']['coordinates'] == [11.266026, 47.114958]
86     assert json['features'][1]['properties']['type'] == 'gasthaus'
87     assert json['features'][1]['properties']['name'] == u'Alt Bärnbad (Gasthaus)'
88     assert json['features'][1]['geometry']['coordinates'] == [11.266262, 47.114715]
89     assert json['features'][2]['properties']['type'] == 'rodelbahn'
90     assert json['features'][2]['geometry']['coordinates'] == [
91         [11.266262, 47.114715],
92         [11.268381, 47.114135],
93         [11.269322, 47.113421],
94         [11.269979, 47.11277],
95         [11.271119, 47.112408]]
96
97
98 def test_parse_wrmap():
99     wikitext = u'''
100     <wrmap lat="47.2417134" lon="11.21408895" zoom="14" width="700" height="400">
101     <gasthaus name="Rosskogelhütte" wiki="Rosskogelhütte">47.240689 11.190454</gasthaus>
102     <parkplatz>47.245789 11.238971</parkplatz>
103     <haltestelle name="Oberperfuss Rangger Köpfl Lift">47.245711 11.238283</haltestelle>
104     <rodelbahn>
105         47.238587 11.203360
106         47.244951 11.230868
107         47.245470 11.237853
108     </rodelbahn>
109     </wrmap>
110     '''
111     json = wrpylib.wrmwmarkup.parse_wrmap(wikitext)
112     assert json['properties']['lon'] == 11.21408895
113     assert json['properties']['lat'] == 47.2417134
114     assert json['properties']['zoom'] == 14
115     assert json['properties']['width'] == 700
116     assert json['properties']['height'] == 400
117     assert json['features'][0]['properties']['type'] == 'gasthaus'
118     assert json['features'][0]['properties']['name'] == u'Rosskogelhütte'
119     assert json['features'][0]['properties']['wiki'] == u'Rosskogelhütte'
120     assert json['features'][0]['geometry']['coordinates'] == [11.190454, 47.240689]
121     assert json['features'][1]['properties']['type'] == 'parkplatz'
122     assert json['features'][1]['geometry']['coordinates'] == [11.238971, 47.245789]
123     assert json['features'][2]['properties']['type'] == 'haltestelle'
124     assert json['features'][2]['properties']['name'] == u'Oberperfuss Rangger Köpfl Lift'
125     assert json['features'][2]['geometry']['coordinates'] == [11.238283, 47.245711]
126     assert json['features'][3]['properties']['type'] == 'rodelbahn'
127     assert json['features'][3]['geometry']['coordinates'] == [
128         [11.203360, 47.238587],
129         [11.230868, 47.244951],
130         [11.237853, 47.245470]]
131
132
133 def test_create_wrmap():
134     geojson = {
135         'type': 'FeatureCollection',
136         'features':
137             [{
138                 'type': 'Feature',
139                 'geometry': {
140                     'type': 'Point',
141                     'coordinates': [11.190454, 47.240689]},
142                 'properties': {'type': 'gasthaus', 'name': u'Rosskogelhütte', 'wiki': u'Rosskogelhütte'}
143             }, {
144                 'type': 'Feature',
145                 'geometry': {
146                     'type': 'Point',
147                     'coordinates': [11.238971, 47.245789]},
148                 'properties': {'type': 'parkplatz'}
149             }, {
150                 'type': 'Feature',
151                 'geometry': {
152                     'type': 'Point',
153                     'coordinates': [11.238283, 47.245711]},
154                 'properties': {'type': 'haltestelle', 'name': u'Oberperfuss Rangger Köpfl Lift'}
155             }, {
156                 'type': 'Feature',
157                 'geometry': {
158                     'type': 'LineString',
159                     'coordinates': [
160                         [11.203360, 47.238587],
161                         [11.230868, 47.244951],
162                         [11.237853, 47.245470]]},
163                 'properties': {'type': 'rodelbahn'}
164             }],
165         'properties': {
166             'lon': 11.21408895,
167             'lat': 47.2417134,
168             'zoom': 14,
169             'width': 700,
170             'height': 400}
171     }
172
173     wikitext = wrpylib.wrmwmarkup.create_wrmap(geojson)
174     assert wikitext == textwrap.dedent(u'''\
175     <wrmap height="400" lat="47.241713" lon="11.214089" width="700" zoom="14">
176
177     <gasthaus name="Rosskogelhütte" wiki="Rosskogelhütte">47.240689 N 11.190454 E</gasthaus>
178     <parkplatz>47.245789 N 11.238971 E</parkplatz>
179     <haltestelle name="Oberperfuss Rangger Köpfl Lift">47.245711 N 11.238283 E</haltestelle>
180
181     <rodelbahn>
182     47.238587 N 11.203360 E
183     47.244951 N 11.230868 E
184     47.245470 N 11.237853 E
185     </rodelbahn>
186
187     </wrmap>''')
188