#!/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