|
|
@ -18,26 +18,41 @@ LANGUAGES = { |
|
|
|
# Set to True if you want to create missing rendered files |
|
|
|
CREATE_MISSING_RENDERED_FILE = False |
|
|
|
|
|
|
|
class TestParsingRendering(unittest.TestCase): |
|
|
|
def load_tests(loader, tests, pattern): |
|
|
|
""" |
|
|
|
Add all `*.source` files to the test suite. |
|
|
|
""" |
|
|
|
del loader, tests, pattern |
|
|
|
suite = unittest.TestSuite() |
|
|
|
for source in sorted(glob.glob(os.path.join( |
|
|
|
os.path.dirname(__file__), |
|
|
|
'*.source', |
|
|
|
))): |
|
|
|
single_test = TestSingleParsingRendering('run_test') |
|
|
|
setattr(single_test, 'filename', source) |
|
|
|
suite.addTest(single_test) |
|
|
|
return suite |
|
|
|
|
|
|
|
class TestSingleParsingRendering(unittest.TestCase): |
|
|
|
"""Test parsing and rendering""" |
|
|
|
|
|
|
|
maxDiff = None |
|
|
|
|
|
|
|
def test_all(self): |
|
|
|
"""Test all `*.source` files. |
|
|
|
def run_test(self): |
|
|
|
"""Test the self.filename (.source) file. |
|
|
|
|
|
|
|
For any given `foo.source`, it is parsed as a chordpro file, and |
|
|
|
should be rendered as `foo.sgc` with the chordpro renderer, and |
|
|
|
`foo.tex` with the latex renderer. |
|
|
|
""" |
|
|
|
if not hasattr(self, 'filename'): |
|
|
|
return self.skipTest("No file to test") |
|
|
|
|
|
|
|
source = getattr(self, 'filename') |
|
|
|
config = DEFAULT_CONFIG.copy() |
|
|
|
config.update({ |
|
|
|
'encoding': 'utf8', |
|
|
|
}) |
|
|
|
for source in sorted(glob.glob(os.path.join( |
|
|
|
os.path.dirname(__file__), |
|
|
|
'*.source', |
|
|
|
))): |
|
|
|
base = source[:-len(".source")] |
|
|
|
for dest in LANGUAGES: |
|
|
|
destname = "{}.{}".format(base, dest) |
|
|
@ -66,3 +81,5 @@ class TestParsingRendering(unittest.TestCase): |
|
|
|
).strip(), |
|
|
|
expectfile.read().strip(), |
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|