#!/usr/bin/python2.7 # -*- coding: iso-8859-15 -*- import wrpylib.mwmarkup def test_find_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 Rodelbahn zur Bergkristallhütte ist durchaus abwechslungsreich.''' 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 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 my first tag and my second 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 .' 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''' (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 ''' 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('