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())
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())
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)
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"))
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))
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"])
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"})))
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))
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)
def test_get_item(self): t = WikiTemplate("Museum", {"curator": "Gunther"}) self.assertEqual(WikiText("Gunther"), t["curator"]) with self.assertRaises(KeyError): _ = t["junimo"]
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))
def test_str(self): raw = "\n\nI am Iron Man " self.assertEqual(raw, WikiText(raw).as_text()) self.assertEqual(raw.strip(), str(WikiText(raw)))
def test_bool(self): self.assertTrue(WikiText("We are Groot")) self.assertFalse(WikiText())