|
| 1 | +import os |
1 | 2 | import unittest |
2 | 3 | from support import simplejson, html5lib_test_files |
3 | 4 |
|
@@ -114,30 +115,24 @@ def runTokenizerTest(self, test): |
114 | 115 | tokens = concatenateCharacterTokens(tokens) |
115 | 116 | errorMsg = "\n".join(["\n\nContent Model Flag:", |
116 | 117 | test['contentModelFlag'] , |
117 | | - "\nExpected:", str(output), "\nRecieved:", |
118 | | - str(tokens)]) |
| 118 | + "\nInput:", str(test['input']), |
| 119 | + "\nExpected:", str(output), |
| 120 | + "\nRecieved:", str(tokens)]) |
119 | 121 | self.assertEquals(tokensMatch(tokens, output), True, errorMsg) |
120 | 122 |
|
121 | | - |
122 | | -def test_tokenizer(): |
| 123 | +def buildTestSuite(): |
123 | 124 | for filename in html5lib_test_files('tokenizer', '*.test'): |
124 | 125 | tests = simplejson.load(file(filename)) |
125 | | - for test in tests['tests']: |
126 | | - yield (TestCase.runTokenizerTest, test) |
127 | | - |
128 | | -def buildTestSuite(): |
129 | | - tests = 0 |
130 | | - for func, test in test_tokenizer(): |
131 | | - if 'contentModelFlags' not in test: |
132 | | - test["contentModelFlags"] = ["PCDATA"] |
133 | | - for contentModelFlag in test["contentModelFlags"]: |
134 | | - tests += 1 |
135 | | - testName = 'test%d' % tests |
136 | | - test["contentModelFlag"] = contentModelFlag |
137 | | - testFunc = lambda self, method=func, test=test: \ |
138 | | - method(self, test) |
139 | | - testFunc.__doc__ = "\t".join([test['description'], str(test['input'])]) |
140 | | - setattr(TestCase, testName, testFunc) |
| 126 | + testName = os.path.basename(filename).replace(".test","") |
| 127 | + for index,test in enumerate(tests['tests']): |
| 128 | + if 'contentModelFlags' not in test: |
| 129 | + test["contentModelFlags"] = ["PCDATA"] |
| 130 | + for contentModelFlag in test["contentModelFlags"]: |
| 131 | + test["contentModelFlag"] = contentModelFlag |
| 132 | + def testFunc(self, test=test): |
| 133 | + self.runTokenizerTest(test) |
| 134 | + testFunc.__doc__ = "\t".join([testName, test['description']]) |
| 135 | + setattr(TestCase, 'test_%s_%d' % (testName, index), testFunc) |
141 | 136 | return unittest.TestLoader().loadTestsFromTestCase(TestCase) |
142 | 137 |
|
143 | 138 | def main(): |
|
0 commit comments