Exemple #1
0
 def test_values(self):
     t1 = WikiTemplate("NPC", {"1": "Dwarf"})
     t2 = WikiTemplate("NPC", {"1": "Maru"})
     self.assertCountEqual((WikiText(t1), WikiText(t2)),
                           WikiTemplate("Mountain", {
                               "1": t1,
                               "2": t2
                           }).values())
Exemple #2
0
 def test_sanity(self):
     self.assertEqual(
         WikiText("<nowiki>Execute Order 66</nowiki>"),
         WikiExt("nowiki", inner="Execute Order 66",
                 close="</nowiki>")._squash())
     self.assertEqual(
         WikiText(
             "<syntaxhighlight lang='python'>print('Luke, I am your father.')</syntaxhighlight>"
         ),
         WikiExt("syntaxhighlight", " lang='python'",
                 "print('Luke, I am your father.')",
                 "</syntaxhighlight>")._squash())
Exemple #3
0
    def test_pop(self):
        t = WikiTemplate("Beach", {"1": "Willy", "2": "Elliot"})

        self.assertIn("1", t)
        self.assertEqual(WikiText("Willy"), t.pop("1"))
        self.assertNotIn("1", t)

        self.assertIsNone(t.pop("5"))

        self.assertIn("2", t)
        self.assertEqual(WikiText("Elliot"), t.pop())
        self.assertNotIn("2", t)
Exemple #4
0
    def test_get_param(self):
        t = WikiTemplate("NPC", {"name": "Sandy", "location": "Oasis"})
        self.assertEqual("Sandy", str(t.get_param("name")))
        self.assertEqual("Sweet Pea",
                         str(t.get_param("gifts", WikiText("Sweet Pea"))))
        self.assertEqual("Sweet Pea", t.get_param("gifts", "Sweet Pea"))

        self.assertIsNone(t.get_param("gifts"))
Exemple #5
0
    def test_templates(self):
        # no templates
        wt = WikiText()
        self.assertFalse(wt.templates)

        wt = WikiText("Groot")
        self.assertFalse(wt.templates)

        # multiples
        t1 = WikiTemplate("Sceptre", {"1": "yellow"})
        t2 = WikiTemplate("Eye of Agamotto", {"2": "green"})
        result = WikiText("You want my property? ", t1, "You can't have it!",
                          t2).templates

        self.assertIn(t1, result)
        self.assertIn(t2, result)
        self.assertEqual(2, len(result))

        # nesting
        t1 = WikiTemplate("S.H.I.E.L.D.")
        t2 = WikiTemplate("Heli", {"carrier": WikiText(t1)})
        raw = WikiText("Avengers ", t2, " Initiative")
        result = raw.templates
        self.assertIn(t2, result)
        self.assertEqual(1, len(result))

        result = raw.all_templates()
        self.assertIn(t1, result)
        self.assertIn(t2, result)
        self.assertEqual(2, len(result))
Exemple #6
0
    def test_append_to_params(self):
        t = WikiTemplate("NPC", {"name": "Le"})

        self.assertEqual(WikiText("Le"), t["name"])
        t.append_to_params("name", "ah")
        self.assertEqual(WikiText("Leah"), t["name"])

        self.assertNotIn("occupation", t)
        t.append_to_params("occupation", WikiText("Artist"))
        self.assertIn("occupation", t)
        self.assertEqual(WikiText("Artist"), t["occupation"])

        t["gifts"] = "truffle, "
        t.append_to_params("gifts", WikiTemplate("Item", {"name": "Wine"}))
        self.assertIn("gifts", t)
        self.assertEqual(
            WikiText("truffle, ", WikiTemplate("Item", {"name": "Wine"})),
            t["gifts"])
Exemple #7
0
    def test_eq(self):
        raw1 = "I have nothing to prove to you."
        raw2 = "That's not a cat.  That's a Flerken!"
        self.assertEqual(WikiText(raw1), WikiText(raw1))
        self.assertNotEqual(WikiText(raw1), WikiText(raw2))

        self.assertEqual(WikiText(raw1, WikiTemplate("Iron", {"1": "Monger"})),
                         WikiText(raw1, WikiTemplate("Iron", {"1": "Monger"})))
        self.assertNotEqual(
            WikiText(raw1, WikiTemplate("Iron", {"1": "Monger"})),
            WikiText(raw1, WikiTemplate("War", {"1": "Machine"})))
Exemple #8
0
    def test_iadd(self):
        parts = ("We have said goodbye before ", "so it stands to reason... ",
                 "We'll say hello again.")
        expected = "".join(parts)

        # Initializer
        self.assertEqual(expected, str(WikiText(*parts)))

        # Other WikiTexts
        result = WikiText()
        for t in (WikiText(s) for s in parts):
            result += t

        self.assertEqual(expected, str(result))

        # Mixed
        result = WikiText("No amount of money ever",
                          " bought a second of time. \n",
                          WikiTemplate("Wakanda", {"1": "Forever!"}))
        self.assertEqual(
            "No amount of money ever bought a second of time. \n{{Wakanda|1=Forever!}}",
            str(result))
Exemple #9
0
    def test_normalize(self):
        t1 = WikiTemplate("general_store",
                          {"1": WikiTemplate("npc", {"1": "Abigail"})})
        t2 = WikiTemplate("pelIcaN tOWN")
        t3 = WikiTemplate("wikipedia Talk:pelIcaN tOWN")
        t4 = WikiTemplate("wp:sKull cavern")

        WikiTemplate.normalize(self.wiki, t1, t2, t3, t4)

        self.assertEqual("General store", t1.title)
        self.assertEqual(WikiText(WikiTemplate("npc", {"1": "Abigail"})),
                         t1["1"])

        self.assertEqual("PelIcaN tOWN", t2.title)
        self.assertEqual("Wikipedia talk:PelIcaN tOWN", t3.title)
        self.assertEqual("Wikipedia:SKull cavern", t4.title)
Exemple #10
0
    def test_get_item(self):
        t = WikiTemplate("Museum", {"curator": "Gunther"})
        self.assertEqual(WikiText("Gunther"), t["curator"])

        with self.assertRaises(KeyError):
            _ = t["junimo"]
Exemple #11
0
 def test_as_text(self):
     wt = WikiText(" Space ", WikiTemplate("Tesseract", {"1": "blue"}),
                   WikiText(" Stone\n\n"))
     expected = " Space {{Tesseract|1=blue}} Stone\n\n"
     self.assertEqual(expected, wt.as_text())
     self.assertEqual(expected.strip(), wt.as_text(True))
Exemple #12
0
 def test_str(self):
     raw = "\n\nI am Iron Man     "
     self.assertEqual(raw, WikiText(raw).as_text())
     self.assertEqual(raw.strip(), str(WikiText(raw)))
Exemple #13
0
 def test_bool(self):
     self.assertTrue(WikiText("We are Groot"))
     self.assertFalse(WikiText())