Exemplo n.º 1
0
 def test_html_entity(self):
     """tests for building HTMLEntity nodes"""
     tests = [
         ([
             tokens.HTMLEntityStart(),
             tokens.Text(text="nbsp"),
             tokens.HTMLEntityEnd()
         ], wrap([HTMLEntity("nbsp", named=True, hexadecimal=False)])),
         ([
             tokens.HTMLEntityStart(),
             tokens.HTMLEntityNumeric(),
             tokens.Text(text="107"),
             tokens.HTMLEntityEnd()
         ], wrap([HTMLEntity("107", named=False, hexadecimal=False)])),
         ([
             tokens.HTMLEntityStart(),
             tokens.HTMLEntityNumeric(),
             tokens.HTMLEntityHex(char="X"),
             tokens.Text(text="6B"),
             tokens.HTMLEntityEnd()
         ],
          wrap([
              HTMLEntity("6B", named=False, hexadecimal=True, hex_char="X")
          ])),
     ]
     for test, valid in tests:
         self.assertWikicodeEqual(valid, self.builder.build(test))
Exemplo n.º 2
0
 def test_unicode(self):
     """test HTMLEntity.__unicode__()"""
     node1 = HTMLEntity("nbsp", named=True, hexadecimal=False)
     node2 = HTMLEntity("107", named=False, hexadecimal=False)
     node3 = HTMLEntity("6b", named=False, hexadecimal=True)
     node4 = HTMLEntity("6C", named=False, hexadecimal=True, hex_char="X")
     self.assertEqual(" ", str(node1))
     self.assertEqual("k", str(node2))
     self.assertEqual("k", str(node3))
     self.assertEqual("l", str(node4))
Exemplo n.º 3
0
 def test_hex_char(self):
     """test getter/setter for the hex_char attribute"""
     node1 = HTMLEntity("e9")
     node2 = HTMLEntity("e9", hex_char="X")
     self.assertEqual("x", node1.hex_char)
     self.assertEqual("X", node2.hex_char)
     node1.hex_char = "X"
     node2.hex_char = "x"
     self.assertEqual("X", node1.hex_char)
     self.assertEqual("x", node2.hex_char)
     self.assertRaises(ValueError, setattr, node1, "hex_char", 123)
     self.assertRaises(ValueError, setattr, node1, "hex_char", "foobar")
     self.assertRaises(ValueError, setattr, node1, "hex_char", True)
Exemplo n.º 4
0
    def test_value(self):
        """test getter/setter for the value attribute"""
        node1 = HTMLEntity("nbsp")
        node2 = HTMLEntity("107")
        node3 = HTMLEntity("e9")
        self.assertEqual("nbsp", node1.value)
        self.assertEqual("107", node2.value)
        self.assertEqual("e9", node3.value)

        node1.value = "ffa4"
        node2.value = 72
        node3.value = "Sigma"
        self.assertEqual("ffa4", node1.value)
        self.assertFalse(node1.named)
        self.assertTrue(node1.hexadecimal)
        self.assertEqual("72", node2.value)
        self.assertFalse(node2.named)
        self.assertFalse(node2.hexadecimal)
        self.assertEqual("Sigma", node3.value)
        self.assertTrue(node3.named)
        self.assertFalse(node3.hexadecimal)

        node1.value = "10FFFF"
        node2.value = 110000
        node2.value = 1114111
        self.assertRaises(ValueError, setattr, node3, "value", "")
        self.assertRaises(ValueError, setattr, node3, "value", "foobar")
        self.assertRaises(ValueError, setattr, node3, "value", True)
        self.assertRaises(ValueError, setattr, node3, "value", -1)
        self.assertRaises(ValueError, setattr, node1, "value", 110000)
        self.assertRaises(ValueError, setattr, node1, "value", "1114112")
        self.assertRaises(ValueError, setattr, node1, "value", "12FFFF")
Exemplo n.º 5
0
 def test_showtree(self):
     """test HTMLEntity.__showtree__()"""
     output = []
     node1 = HTMLEntity("nbsp", named=True, hexadecimal=False)
     node2 = HTMLEntity("107", named=False, hexadecimal=False)
     node3 = HTMLEntity("e9", named=False, hexadecimal=True)
     node1.__showtree__(output.append, None, None)
     node2.__showtree__(output.append, None, None)
     node3.__showtree__(output.append, None, None)
     res = [" ", "k", "é"]
     self.assertEqual(res, output)
Exemplo n.º 6
0
    def test_strip(self):
        """test HTMLEntity.__strip__()"""
        node1 = HTMLEntity("nbsp", named=True, hexadecimal=False)
        node2 = HTMLEntity("107", named=False, hexadecimal=False)
        node3 = HTMLEntity("e9", named=False, hexadecimal=True)

        self.assertEqual("\xa0", node1.__strip__(normalize=True))
        self.assertEqual(" ", node1.__strip__(normalize=False))
        self.assertEqual("k", node2.__strip__(normalize=True))
        self.assertEqual("k", node2.__strip__(normalize=False))
        self.assertEqual("é", node3.__strip__(normalize=True))
        self.assertEqual("é", node3.__strip__(normalize=False))
Exemplo n.º 7
0
 def test_integration2(self):
     """an even more audacious test for building a horrible wikicode mess"""
     # {{a|b|{{c|[[d]]{{{e}}}}}}}[[f|{{{g}}}<!--h-->]]{{i|j=&nbsp;}}
     test = [tokens.TemplateOpen(), tokens.Text(text="a"),
             tokens.TemplateParamSeparator(), tokens.Text(text="b"),
             tokens.TemplateParamSeparator(), tokens.TemplateOpen(),
             tokens.Text(text="c"), tokens.TemplateParamSeparator(),
             tokens.WikilinkOpen(), tokens.Text(text="d"),
             tokens.WikilinkClose(), tokens.ArgumentOpen(),
             tokens.Text(text="e"), tokens.ArgumentClose(),
             tokens.TemplateClose(), tokens.TemplateClose(),
             tokens.WikilinkOpen(), tokens.Text(text="f"),
             tokens.WikilinkSeparator(), tokens.ArgumentOpen(),
             tokens.Text(text="g"), tokens.ArgumentClose(),
             tokens.CommentStart(), tokens.Text(text="h"),
             tokens.CommentEnd(), tokens.WikilinkClose(),
             tokens.TemplateOpen(), tokens.Text(text="i"),
             tokens.TemplateParamSeparator(), tokens.Text(text="j"),
             tokens.TemplateParamEquals(), tokens.HTMLEntityStart(),
             tokens.Text(text="nbsp"), tokens.HTMLEntityEnd(),
             tokens.TemplateClose()]
     valid = wrap(
         [Template(wraptext("a"), params=[Parameter(wraptext("1"), wraptext(
         "b"), showkey=False), Parameter(wraptext("2"), wrap([Template(
         wraptext("c"), params=[Parameter(wraptext("1"), wrap([Wikilink(
         wraptext("d")), Argument(wraptext("e"))]), showkey=False)])]),
         showkey=False)]), Wikilink(wraptext("f"), wrap([Argument(wraptext(
         "g")), Comment("h")])), Template(wraptext("i"), params=[
         Parameter(wraptext("j"), wrap([HTMLEntity("nbsp",
         named=True)]))])])
     self.assertWikicodeEqual(valid, self.builder.build(test))
Exemplo n.º 8
0
 def test_normalize(self):
     """test getter/setter for the normalize attribute"""
     node1 = HTMLEntity("nbsp")
     node2 = HTMLEntity("107")
     node3 = HTMLEntity("e9")
     node4 = HTMLEntity("1f648")
     self.assertEqual("\xa0", node1.normalize())
     self.assertEqual("k", node2.normalize())
     self.assertEqual("é", node3.normalize())
     self.assertEqual("\U0001F648", node4.normalize())
Exemplo n.º 9
0
 def test_hexadecimal(self):
     """test getter/setter for the hexadecimal attribute"""
     node1 = HTMLEntity("nbsp")
     node2 = HTMLEntity("107")
     node3 = HTMLEntity("e9")
     self.assertFalse(node1.hexadecimal)
     self.assertFalse(node2.hexadecimal)
     self.assertTrue(node3.hexadecimal)
     node1.hexadecimal = False
     node2.hexadecimal = True
     node3.hexadecimal = False
     self.assertFalse(node1.hexadecimal)
     self.assertTrue(node2.hexadecimal)
     self.assertFalse(node3.hexadecimal)
     self.assertRaises(ValueError, setattr, node1, "hexadecimal", True)
Exemplo n.º 10
0
 def test_named(self):
     """test getter/setter for the named attribute"""
     node1 = HTMLEntity("nbsp")
     node2 = HTMLEntity("107")
     node3 = HTMLEntity("e9")
     self.assertTrue(node1.named)
     self.assertFalse(node2.named)
     self.assertFalse(node3.named)
     node1.named = 1
     node2.named = 0
     node3.named = 0
     self.assertTrue(node1.named)
     self.assertFalse(node2.named)
     self.assertFalse(node3.named)
     self.assertRaises(ValueError, setattr, node1, "named", False)
     self.assertRaises(ValueError, setattr, node2, "named", True)
     self.assertRaises(ValueError, setattr, node3, "named", True)
Exemplo n.º 11
0
 def test_normalize(self):
     """test getter/setter for the normalize attribute"""
     node1 = HTMLEntity("nbsp")
     node2 = HTMLEntity("107")
     node3 = HTMLEntity("e9")
     node4 = HTMLEntity("1f648")
     node5 = HTMLEntity("-2")
     node6 = HTMLEntity("110000", named=False, hexadecimal=True)
     self.assertEqual("\xa0", node1.normalize())
     self.assertEqual("k", node2.normalize())
     self.assertEqual("é", node3.normalize())
     self.assertEqual("\U0001F648", node4.normalize())
     self.assertRaises(ValueError, node5.normalize)
     self.assertRaises(ValueError, node6.normalize)
Exemplo n.º 12
0
 def test_hex_char(self):
     """test getter/setter for the hex_char attribute"""
     node1 = HTMLEntity("e9")
     node2 = HTMLEntity("e9", hex_char="X")
     self.assertEqual("x", node1.hex_char)
     self.assertEqual("X", node2.hex_char)
     node1.hex_char = "X"
     node2.hex_char = "x"
     self.assertEqual("X", node1.hex_char)
     self.assertEqual("x", node2.hex_char)
     self.assertRaises(ValueError, setattr, node1, "hex_char", 123)
     self.assertRaises(ValueError, setattr, node1, "hex_char", "foobar")
     self.assertRaises(ValueError, setattr, node1, "hex_char", True)
Exemplo n.º 13
0
 def test_hexadecimal(self):
     """test getter/setter for the hexadecimal attribute"""
     node1 = HTMLEntity("nbsp")
     node2 = HTMLEntity("107")
     node3 = HTMLEntity("e9")
     self.assertFalse(node1.hexadecimal)
     self.assertFalse(node2.hexadecimal)
     self.assertTrue(node3.hexadecimal)
     node1.hexadecimal = False
     node2.hexadecimal = True
     node3.hexadecimal = False
     self.assertFalse(node1.hexadecimal)
     self.assertTrue(node2.hexadecimal)
     self.assertFalse(node3.hexadecimal)
     self.assertRaises(ValueError, setattr, node1, "hexadecimal", True)
Exemplo n.º 14
0
 def test_named(self):
     """test getter/setter for the named attribute"""
     node1 = HTMLEntity("nbsp")
     node2 = HTMLEntity("107")
     node3 = HTMLEntity("e9")
     self.assertTrue(node1.named)
     self.assertFalse(node2.named)
     self.assertFalse(node3.named)
     node1.named = 1
     node2.named = 0
     node3.named = 0
     self.assertTrue(node1.named)
     self.assertFalse(node2.named)
     self.assertFalse(node3.named)
     self.assertRaises(ValueError, setattr, node1, "named", False)
     self.assertRaises(ValueError, setattr, node2, "named", True)
     self.assertRaises(ValueError, setattr, node3, "named", True)
Exemplo n.º 15
0
    def test_strip(self):
        """test HTMLEntity.__strip__()"""
        node1 = HTMLEntity("nbsp", named=True, hexadecimal=False)
        node2 = HTMLEntity("107", named=False, hexadecimal=False)
        node3 = HTMLEntity("e9", named=False, hexadecimal=True)

        self.assertEqual("\xa0", node1.__strip__(normalize=True))
        self.assertEqual("&nbsp;", node1.__strip__(normalize=False))
        self.assertEqual("k", node2.__strip__(normalize=True))
        self.assertEqual("&#107;", node2.__strip__(normalize=False))
        self.assertEqual("é", node3.__strip__(normalize=True))
        self.assertEqual("&#xe9;", node3.__strip__(normalize=False))
Exemplo n.º 16
0
 def test_children(self):
     """test HTMLEntity.__children__()"""
     node = HTMLEntity("nbsp", named=True, hexadecimal=False)
     gen = node.__children__()
     self.assertRaises(StopIteration, next, gen)
Exemplo n.º 17
0
 def test_iternodes(self):
     """test HTMLEntity.__iternodes__()"""
     node = HTMLEntity("nbsp", named=True, hexadecimal=False)
     gen = node.__iternodes__(None)
     self.assertEqual((None, node), next(gen))
     self.assertRaises(StopIteration, next, gen)
Exemplo n.º 18
0
 def test_normalize(self):
     """test getter/setter for the normalize attribute"""
     node1 = HTMLEntity("nbsp")
     node2 = HTMLEntity("107")
     node3 = HTMLEntity("e9")
     node4 = HTMLEntity("1f648")
     node5 = HTMLEntity("-2")
     node6 = HTMLEntity("110000", named=False, hexadecimal=True)
     self.assertEqual("\xa0", node1.normalize())
     self.assertEqual("k", node2.normalize())
     self.assertEqual("é", node3.normalize())
     self.assertEqual("\U0001F648", node4.normalize())
     self.assertRaises(ValueError, node5.normalize)
     self.assertRaises(ValueError, node6.normalize)
Exemplo n.º 19
0
 def test_showtree(self):
     """test HTMLEntity.__showtree__()"""
     output = []
     node1 = HTMLEntity("nbsp", named=True, hexadecimal=False)
     node2 = HTMLEntity("107", named=False, hexadecimal=False)
     node3 = HTMLEntity("e9", named=False, hexadecimal=True)
     node1.__showtree__(output.append, None, None)
     node2.__showtree__(output.append, None, None)
     node3.__showtree__(output.append, None, None)
     res = ["&nbsp;", "&#107;", "&#xe9;"]
     self.assertEqual(res, output)
Exemplo n.º 20
0
 def test_children(self):
     """test HTMLEntity.__children__()"""
     node = HTMLEntity("nbsp", named=True, hexadecimal=False)
     gen = node.__children__()
     self.assertRaises(StopIteration, next, gen)
Exemplo n.º 21
0
    def test_value(self):
        """test getter/setter for the value attribute"""
        node1 = HTMLEntity("nbsp")
        node2 = HTMLEntity("107")
        node3 = HTMLEntity("e9")
        self.assertEqual("nbsp", node1.value)
        self.assertEqual("107", node2.value)
        self.assertEqual("e9", node3.value)

        node1.value = "ffa4"
        node2.value = 72
        node3.value = "Sigma"
        self.assertEqual("ffa4", node1.value)
        self.assertFalse(node1.named)
        self.assertTrue(node1.hexadecimal)
        self.assertEqual("72", node2.value)
        self.assertFalse(node2.named)
        self.assertFalse(node2.hexadecimal)
        self.assertEqual("Sigma", node3.value)
        self.assertTrue(node3.named)
        self.assertFalse(node3.hexadecimal)

        node1.value = "10FFFF"
        node2.value = 110000
        node2.value = 1114111
        self.assertRaises(ValueError, setattr, node3, "value", "")
        self.assertRaises(ValueError, setattr, node3, "value", "foobar")
        self.assertRaises(ValueError, setattr, node3, "value", True)
        self.assertRaises(ValueError, setattr, node3, "value", -1)
        self.assertRaises(ValueError, setattr, node1, "value", 110000)
        self.assertRaises(ValueError, setattr, node1, "value", "1114112")
        self.assertRaises(ValueError, setattr, node1, "value", "12FFFF")
Exemplo n.º 22
0
 def test_normalize(self):
     """test getter/setter for the normalize attribute"""
     node1 = HTMLEntity("nbsp")
     node2 = HTMLEntity("107")
     node3 = HTMLEntity("e9")
     node4 = HTMLEntity("1f648")
     self.assertEqual("\xa0", node1.normalize())
     self.assertEqual("k", node2.normalize())
     self.assertEqual("é", node3.normalize())
     self.assertEqual("\U0001F648", node4.normalize())