@@ -35,7 +35,28 @@ def load(f):
35
35
#Run the serialize error checks
36
36
checkSerializeErrors = False
37
37
38
- class TestCase(unittest.TestCase, TreeWalker):
38
+ class JsonWalker(TreeWalker):
39
+ def __iter__(self):
40
+ for token in self.tree:
41
+ type = token[0]
42
+ if type == "StartTag":
43
+ yield self.startTag(token[1], token[2])
44
+ elif type == "EndTag":
45
+ yield self.endTag(token[1])
46
+ elif type == "EmptyTag":
47
+ for token in self.emptyTag(token[1], token[2]):
48
+ yield token
49
+ elif type == "Comment":
50
+ yield self.comment(token[1])
51
+ elif type in ("Characters", "SpaceCharacters"):
52
+ for token in self.text(token[1]):
53
+ yield token
54
+ elif type == "Doctype":
55
+ yield self.doctype(token[1])
56
+ else:
57
+ raise ValueError("Unknown token type: " + type)
58
+
59
+ class TestCase(unittest.TestCase):
39
60
def addTest(cls, name, expected, input, description, options):
40
61
func = lambda self: self.mockTest(expected, input, options)
41
62
func.__doc__ = "\t".join([description, str(input), str(options)])
@@ -54,27 +75,7 @@ def mockTest(self, expected, input, options):
54
75
def serialize_html(self, input, options):
55
76
return u''.join(serializer.HTMLSerializer( \
56
77
**dict([(str(k),v) for k,v in options.iteritems()])).
57
- serialize(self.normalizeTokens(input)))
58
-
59
- def normalizeTokens(self, tokens):
60
- for token in tokens:
61
- type = token[0]
62
- if type == "StartTag":
63
- yield self.startTag(token[1], token[2])
64
- elif type == "EndTag":
65
- yield self.endTag(token[1])
66
- elif type == "EmptyTag":
67
- for token in self.emptyTag(token[1], token[2]):
68
- yield token
69
- elif type == "Comment":
70
- yield self.comment(token[1])
71
- elif type in ("Characters", "SpaceCharacters"):
72
- for token in self.text(token[1]):
73
- yield token
74
- elif type == "Doctype":
75
- yield self.doctype(token[1])
76
- else:
77
- raise ValueError("Unknown token type: " + type)
78
+ serialize(JsonWalker(input)))
78
79
79
80
def test_serializer():
80
81
for filename in glob.glob('serializer/*.test'):
0 commit comments