Toggle Solos
ci / checks (push) Failing after 24m18s

This commit is contained in:
khodowany
2026-10-08 22:11:34 -05:00
parent 1bacfd0f33
commit 150394d598
31 changed files with 8707 additions and 372 deletions
+25
View File
@@ -145,3 +145,28 @@ class CatalogTests(unittest.TestCase):
self.assertFalse(connection.in_transaction)
self.assertEqual(connection.execute("SELECT name FROM sqlite_schema").fetchall(), [])
self.assertEqual(connection.execute('PRAGMA application_id').fetchone()[0], 0)
def test_solo_variant_metadata_and_required_pairs(self):
for enabled in (True, False):
document = bundle(part='Acoustic')
document['music']['metadata'].update(song_id='tune', solos_enabled=enabled)
document['music']['staves'][0]['arranged'] = True
write_score(self.root, 'songs/tune_acoustic' + ('' if enabled else '_improv') + '.json', document)
generator.catalog.build_catalog(self.root)
self.assertEqual([row['solos_enabled'] for row in self.rows('songs')], [1, 0])
saved = (self.root / 'catalog.db').read_bytes()
alternate = self.root / 'songs/tune_acoustic_improv.json'
document = json.loads(alternate.read_text())
for value in ('false', 0, None):
document['music']['metadata']['solos_enabled'] = value
alternate.write_text(json.dumps(document))
with self.assertRaisesRegex(ValueError, 'boolean'):
generator.catalog.build_catalog(self.root)
document['music']['metadata']['solos_enabled'] = True
alternate.write_text(json.dumps(document))
with self.assertRaisesRegex(ValueError, 'solo variants'):
generator.catalog.build_catalog(self.root)
alternate.unlink()
with self.assertRaisesRegex(ValueError, 'solo variants'):
generator.catalog.build_catalog(self.root)
self.assertEqual((self.root / 'catalog.db').read_bytes(), saved)