Fret Range & Cleanup
ci / checks (push) Failing after 3h14m51s

This commit is contained in:
khodowany
2026-09-19 22:29:54 -05:00
parent 85cab9d6f6
commit c07586e06a
274 changed files with 362 additions and 164309 deletions
+12 -14
View File
@@ -117,20 +117,18 @@ class AuthoredKeyMetadataTests(unittest.TestCase):
with tempfile.TemporaryDirectory() as temp:
source, output = Path(temp) / 'source', Path(temp) / 'output'
text = xml_score(xml_note('E', alter=-1), '<key><fifths>-3</fifths></key>')
for practice_type in ('chord', 'melody'):
path = source / practice_type / 'lesson' / 'exercise.xml'
path.parent.mkdir(parents=True)
path.write_text(text, encoding='utf-8')
self.assertEqual(generate_practice_scores(source, output), 24)
for practice_type in ('chord', 'melody'):
for key in TARGET_KEYS:
with self.subTest(practice_type=practice_type, key=key):
result = load_json(output / practice_type / 'lesson' / 'exercise' / key_file_name(key))
self.assertEqual(result['schema_version'], 3)
self.assertEqual(result['metadata']['authored_key_signature'], 'Eb')
self.assertEqual(result['metadata']['key_signature'], key)
self.assertEqual(result['metadata']['variant_tonic'], key)
self.assertEqual((source / practice_type / 'lesson' / 'exercise.xml').read_text(encoding='utf-8'), text)
source.mkdir()
path = source / '001.xml'
path.write_text(text, encoding='utf-8')
self.assertEqual(generate_practice_scores(source, output), 12)
for key in TARGET_KEYS:
with self.subTest(key=key):
result = load_json(output / '001' / key_file_name(key))
self.assertEqual(result['schema_version'], 3)
self.assertEqual(result['metadata']['authored_key_signature'], 'Eb')
self.assertEqual(result['metadata']['key_signature'], key)
self.assertEqual(result['metadata']['variant_tonic'], key)
self.assertEqual(path.read_text(encoding='utf-8'), text)
def test_modes_and_keyless_authored_labels_survive_variants(self):
for mode, fifths, label in [('minor', -3, 'C minor'), ('dorian', -2, 'C dorian'), ('mixolydian', -1, 'C mixolydian'), ('none', 0, 'No key')]:
source = parse(xml_score(xml_note(), f'<key><fifths>{fifths}</fifths><mode>{mode}</mode></key>'))