8000 Refactor test case · awesome-python/html5lib-python@b91e6d0 · GitHub
[go: up one dir, main page]

Skip to content

Commit b91e6d0

Browse files
committed
Refactor test case
--HG-- extra : convert_revision : svn%3Aacbfec75-9323-0410-a652-858a13e371e0/trunk%40647
1 parent bea50af commit b91e6d0

File tree

1 file changed

+23
-22
lines changed

1 file changed

+23
-22
lines changed

tests/test_serializer.py

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,28 @@ def load(f):
3535
#Run the serialize error checks
3636
checkSerializeErrors = False
3737

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):
3960
def addTest(cls, name, expected, input, description, options):
4061
func = lambda self: self.mockTest(expected, input, options)
4162
func.__doc__ = "\t".join([description, str(input), str(options)])
@@ -54,27 +75,7 @@ def mockTest(self, expected, input, options):
5475
def serialize_html(self, input, options):
5576
return u''.join(serializer.HTMLSerializer( \
5677
**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)))
7879

7980
def test_serializer():
8081
for filename in glob.glob('serializer/*.test'):

0 commit comments

Comments
 (0)
0