-#!/usr/bin/python2.6
+#!/usr/bin/python2.7
# -*- coding: iso-8859-15 -*-
-import wrpylib.wrmwmarkup
-import formencode
+import wrpylib.mwmarkup
-def test_rodelbahnbox_to_sledrun():
+def test_find_template():
wikitext = u'''== Allgemeines ==
{{Rodelbahnbox
| Position = 47.309820 N 9.986508 E
| Forumid = 72
}}
Die Rodelbahn zur Bergkristallhütte ist durchaus abwechslungsreich.'''
- class Sledrun(object): pass
- sledrun = Sledrun()
- wrpylib.wrmwmarkup.rodelbahnbox_to_sledrun(wikitext, sledrun)
- wrpylib.wrmwmarkup.sledrun_to_rodelbahnbox(sledrun, '1.3')
-
-
-
-def test_gasthausbox_to_inn():
- wikitext = u'''{{Gasthausbox
- | Position = 47.295549 N 9.986970 E
- | Höhe = 1250
- | Betreiber =
- | Sitzplätze =
- | Übernachtung =
- | Rauchfrei = Nein
- | Rodelverleih =
- | Handyempfang = A1; T-Mobile/Telering
- | Homepage = http://www.bergkristallhuette.com/
- | E-Mail = bergkristallhuette@gmx.at
- | Telefon = +43-664-1808482
- | Bild = Bergkritsallhütte 2009-02-07.JPG
- | Rodelbahnen = [[Bergkristallhütte]]
+ start, end = wrpylib.mwmarkup.find_template(wikitext, u'Rodelbahnbox')
+ assert start == wikitext.find(u'{{')
+ assert end == wikitext.find(u'}}')+2
+
+
+def test_split_template():
+ wikitext = u'''== Allgemeines ==
+ {{Rodelbahnbox
+ | Position = 47.309820 N 9.986508 E
+ | Position oben =
+ | Höhe oben = 1244
+ | Position unten =
+ | Höhe unten = 806
+ | Länge = 5045
+ | Schwierigkeit =
+ | Lawinen = gelegentlich
+ | Betreiber =
+ | Öffentliche Anreise = Ja
+ | Gehzeit = 105
+ | Aufstieg getrennt = Nein
+ | Aufstiegshilfe = Nein
+ | Beleuchtungsanlage = Nein
+ | Beleuchtungstage =
+ | Rodelverleih = Ja
+ | Gütesiegel =
+ | Webauskunft =
+ | Telefonauskunft = +43-664-1808482 (Bergkristallhütte)
+ | Bild = Rodelbahn Bergkristallhütte 2009-03-03.jpg
+ | In Übersichtskarte = Ja
+ | Forumid = 72
}}
- Die Bergkristallhütte ist Teil des Boden-Vorsäß.'''
- class Inn(object): pass
- inn = Inn()
- wrpylib.wrmwmarkup.gasthausbox_to_inn(wikitext, inn)
- wrpylib.wrmwmarkup.inn_to_gasthausbox(inn)
+ Die Rodelbahn zur Bergkristallhütte ist durchaus abwechslungsreich.'''
+ start, end = wrpylib.mwmarkup.find_template(wikitext, u'Rodelbahnbox')
+ template_title, parameters = wrpylib.mwmarkup.split_template(wikitext[start:end])
+ assert template_title == u'Rodelbahnbox'
+ assert len(parameters) == 22
+ assert parameters['Position'] == u'47.309820 N 9.986508 E'
+ assert parameters['Telefonauskunft'] == u'+43-664-1808482 (Bergkristallhütte)'
+ assert parameters['Schwierigkeit'] == u''
+
+
+def test_create_template():
+ wikitext = u'''{{Nicetemplate|Red|Bold|Position=Top|Alignment=Right}}'''
+ template_title, parameters = wrpylib.mwmarkup.split_template(wikitext)
+ print parameters
+ keys = [u'1', u'2', u'Position', u'Alignment']
+ values = [parameters[k] for k in keys]
+ wikitext_generated = wrpylib.mwmarkup.create_template(template_title, values[:2], keys[2:], values[2:])
+ wikitext_table = wrpylib.mwmarkup.create_template(template_title, values[:2], keys[2:], values[2:], True)
+ assert wikitext_generated == wikitext
+
+
+def test_find_tag():
+ wikitext = u'This is <tag>my first tag</tag> and <tag>my second tag</tag>.'
+ start, content, endtag, end = wrpylib.mwmarkup.find_tag(wikitext, u'tags')
+ assert (start, content, endtag, end) == (None, None, None, None)
+ start, content, endtag, end = wrpylib.mwmarkup.find_tag(wikitext, u'tag')
+ assert (start, content, endtag, end) == (8, 13, 25, 31)
+ start, content, endtag, end = wrpylib.mwmarkup.find_tag(wikitext, u'tag', end)
+ assert (start, content, endtag, end) == (36, 41, 54, 60)
+ wikitext = u'This is <tag myattrib="4"/>.'
+ start, content, endtag, end = wrpylib.mwmarkup.find_tag(wikitext, u'tag')
+ assert (start, content, endtag, end) == (8, None, None, 27)
+
+
+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>
+ '''
+ center, zoom, coords, paths = wrpylib.mwmarkup.parse_googlemap(wikitext)
+ assert center == (11.272337, 47.113291)
+ assert zoom == 15
+ assert coords == [
+ (11.266026, 47.114958, 'Parkplatz', 'Erster Parkplatz'),
+ (11.266262, 47.114715, 'Gasthaus', u'Alt Bärnbad (Gasthaus)')]
+ assert paths == [
+ ('6#FF014E9A', [
+ (11.266262, 47.114715, None, None),
+ (11.268381, 47.114135, None, None),
+ (11.269322, 47.113421, None, None),
+ (11.269979, 47.11277, None, None),
+ (11.271119, 47.112408, None, None)])]
+ center, zoom, coords, paths, start, end = wrpylib.mwmarkup.parse_googlemap(wikitext, detail=True)
+ assert start == 5
+ assert end == 344
+ result = wrpylib.mwmarkup.parse_googlemap(wikitext.replace('<googlemap', '|googlemap'), detail=True)
+ assert result is None