Work on parsing wikicode (currently Rodelbahnbox).
[philipp/winterrodeln/wrpylib.git] / tests / test_mwmarkup.py
index d9f05542f8a6a160451a862de1a869112baf498e..14e0e17a65d8db76fa25d032fa1e4eabecd7cde2 100644 (file)
@@ -1,11 +1,12 @@
-#!/usr/bin/python3.4
-# coding=utf-8
 import unittest
 import mwparserfromhell
 import wrpylib.mwmarkup
 
 
 class TestMwParserFromHell(unittest.TestCase):
+    def setUp(self):
+        self.maxDiff = None
+
     def test_find_template(self):
         wikitext = '''== Allgemeines ==
         {{Rodelbahnbox
@@ -37,8 +38,8 @@ class TestMwParserFromHell(unittest.TestCase):
         rb = list(wikicode.filter_templates())[0]
         self.assertEqual(rb.name.strip(), 'Rodelbahnbox')
         self.assertEqual(rb.get('Aufstiegshilfe').value.strip(), 'Nein')
-        self.assertEqual(rb[:2], '{{')
-        self.assertEqual(rb[-2:], '}}')
+        self.assertEqual(str(rb)[:2], '{{')
+        self.assertEqual(str(rb)[-2:], '}}')
 
     def test_template_to_table(self):
         wikitext = '{{Rodelbahnbox | Unbenannt | Position = 47.309820 N 9.986508 E | Aufstieg möglich = Ja }}'
@@ -57,7 +58,7 @@ class TestMwParserFromHell(unittest.TestCase):
         template.add('Aufstieg möglich', 'Ja')
         self.assertEqual(template, '{{Rodelbahnbox|Unbenannt|Position=47.309820 N 9.986508 E|Aufstieg möglich=Ja}}')
 
-        wrpylib.mwmarkup.template_to_table(template)
+        wrpylib.mwmarkup.format_template_table(template)
         self.assertEqual(template,
             '{{Rodelbahnbox\n' +
             '| Unbenannt\n' +
@@ -65,12 +66,12 @@ class TestMwParserFromHell(unittest.TestCase):
             '| Aufstieg möglich = Ja\n' +
             '}}')
 
-        wrpylib.mwmarkup.template_to_table(template, 18)
+        wrpylib.mwmarkup.format_template_table(template, 18)
         self.assertEqual(template,
             '{{Rodelbahnbox\n' +
             '| Unbenannt\n' +
-            '| Position          = 47.309820 N 9.986508 E\n' +
-            '| Aufstieg möglich  = Ja\n' +
+            '| Position           = 47.309820 N 9.986508 E\n' +
+            '| Aufstieg möglich   = Ja\n' +
             '}}')
 
     def test_split_template(self):
@@ -115,7 +116,7 @@ class TestMwParserFromHell(unittest.TestCase):
         template.add('Aufstieg möglich', 'Ja')
         self.assertEqual(template, '{{Rodelbahnbox|Unbenannt|Position=47.309820 N 9.986508 E|Aufstieg möglich=Ja}}')
 
-        wrpylib.mwmarkup.template_to_table(template)
+        wrpylib.mwmarkup.format_template_table(template)
         self.assertEqual(template,
             '{{Rodelbahnbox\n' +
             '| Unbenannt\n' +
@@ -138,3 +139,17 @@ class TestMwParserFromHell(unittest.TestCase):
         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)
+
+
+class TestMwApi(unittest.TestCase):
+    def test_dbkey_to_title(self):
+        self.assertEqual(wrpylib.mwmarkup.dbkey_to_title('My_Title'), 'My Title')
+        self.assertEqual(wrpylib.mwmarkup.dbkey_to_title('My Title'), 'My Title') # should not happen
+        self.assertEqual(wrpylib.mwmarkup.dbkey_to_title('My_nice_Title'), 'My nice Title')