|
| 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