+ def test_split_template(self):
+ wikitext = '''== 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.'''
+ wikicode = mwparserfromhell.parse(wikitext)
+ template = wikicode.filter_templates(matches='Rodelbahnbox')[0]
+ self.assertEqual(template.name.strip(), 'Rodelbahnbox')
+ self.assertEqual(len(template.params), 22)
+ self.assertEqual(template.get('Position').value.strip(), '47.309820 N 9.986508 E')
+ self.assertEqual(template.get('Telefonauskunft').value.strip(), '+43-664-1808482 (Bergkristallhütte)')
+ self.assertEqual(template.get('Schwierigkeit').value.strip(), '')
+
+ def test_create_template(self):
+ template = mwparserfromhell.nodes.template.Template('Rodelbahnbox')
+ template.add(1, 'Unbenannt')
+ template.add('Position', '47.309820 N 9.986508 E')
+ template.add('Aufstieg möglich', 'Ja')
+ self.assertEqual(template, '{{Rodelbahnbox|Unbenannt|Position=47.309820 N 9.986508 E|Aufstieg möglich=Ja}}')
+
+ wrpylib.mwmarkup.format_template_table(template)
+ self.assertEqual(template,
+ '{{Rodelbahnbox\n' +
+ '| Unbenannt\n' +
+ '| Position = 47.309820 N 9.986508 E\n' +
+ '| Aufstieg möglich = Ja\n' +
+ '}}')
+
+ def test_find_tag(self):
+ wikitext = 'This is <tag>my first tag</tag> and <tag>my second tag</tag>.'
+ wikicode = mwparserfromhell.parse(wikitext)
+ tag_iter = wikicode.ifilter_tags()
+ tag = next(tag_iter)
+ self.assertEqual(tag.tag.strip(), 'tag')
+ self.assertEqual(tag.contents.strip(), 'my first tag')
+ tag = next(tag_iter)
+ self.assertEqual(tag.tag.strip(), 'tag')
+ self.assertEqual(tag.contents.strip(), 'my second tag')
+
+ wikitext = 'This is <tag myattrib="4"/>.'
+ wikicode = mwparserfromhell.parse(wikitext)
+ tag = next(wikicode.ifilter_tags())
+ self.assertEqual('tag', tag.tag)
+
+
+class TestFormatTemplate(unittest.TestCase):
+ def test_format_template_oneline(self):
+ value = mwparserfromhell.parse('{{ my_template || | var = 7 }}').filter_templates()[0]
+ wrpylib.mwmarkup.format_template_oneline(value)
+ self.assertEqual('{{my_template| | |var=7}}', value)