Rhythm Time Signatures
This commit is contained in:
@@ -28,18 +28,24 @@ class ScoreBundleTests(unittest.TestCase):
|
||||
data, output = root / 'data', root / 'output'
|
||||
(data / 'songs').mkdir(parents=True)
|
||||
(data / 'practice').mkdir()
|
||||
source = data / 'practice/001.xml'
|
||||
source = data / 'practice/0001.xml'
|
||||
source.write_text(xml_score(xml_note()))
|
||||
args = argparse.Namespace(data_dir=data, output_dir=output, static_assets_dir=Path('package/assets'), check=False)
|
||||
generate_assets(args)
|
||||
original = {p.relative_to(output): p.read_bytes() for p in output.rglob('*') if p.is_file()}
|
||||
self.assertTrue(list(output.rglob('*.png')))
|
||||
legacy_source = source.with_name('001.xml')
|
||||
source.rename(legacy_source)
|
||||
with self.assertRaisesRegex(ValueError, 'four-digit'):
|
||||
generate_assets(args)
|
||||
self.assertEqual(original, {p.relative_to(output): p.read_bytes() for p in output.rglob('*') if p.is_file()})
|
||||
legacy_source.rename(source)
|
||||
(data / 'rhythms' / 'drafts').mkdir(parents=True)
|
||||
for path in ('rhythms/001.xml', 'rhythms/drafts/002.xml'):
|
||||
for path in ('rhythms/0001.xml', 'rhythms/drafts/0002.xml'):
|
||||
(data / path).write_text('<unfinished')
|
||||
generate_assets(args)
|
||||
self.assertEqual(original, {p.relative_to(output): p.read_bytes() for p in output.rglob('*') if p.is_file()})
|
||||
misplaced = data / '001.xml'
|
||||
misplaced = data / '0001.xml'
|
||||
misplaced.write_text(xml_score(xml_note()))
|
||||
with self.assertRaisesRegex(ValueError, 'belong directly under'):
|
||||
generate_assets(args)
|
||||
@@ -57,12 +63,16 @@ class ScoreBundleTests(unittest.TestCase):
|
||||
generate_assets(args)
|
||||
self.assertEqual(original, {p.relative_to(output): p.read_bytes() for p in output.rglob('*') if p.is_file()})
|
||||
source.write_text(xml_score(xml_note()))
|
||||
renamed = data / 'practice/127.xml'
|
||||
renamed = data / 'practice/0127.xml'
|
||||
source.rename(renamed)
|
||||
source = renamed
|
||||
legacy_output = output / 'practice/001'
|
||||
legacy_output.mkdir()
|
||||
(legacy_output / 'electric.json').write_text('{}')
|
||||
generate_assets(args)
|
||||
self.assertFalse((output / 'practice/001').exists())
|
||||
self.assertEqual(len(list((output / 'practice/127').glob('*.json'))), 3)
|
||||
self.assertFalse(legacy_output.exists())
|
||||
self.assertFalse((output / 'practice/0001').exists())
|
||||
self.assertEqual(len(list((output / 'practice/0127').glob('*.json'))), 3)
|
||||
source.unlink()
|
||||
generate_assets(args)
|
||||
self.assertFalse(list(output.rglob('*.png')))
|
||||
|
||||
Reference in New Issue
Block a user