@@ -80,6 +80,20 @@ class MusicModelTests(unittest.TestCase):
|
||||
self.assertFalse(measures[-1]['harmonies'])
|
||||
self.assertTrue(any(h for m in measures[:-1] for h in m['harmonies']))
|
||||
self.assertFalse(any('chord_optional' in h for m in measures for h in m['harmonies']))
|
||||
labels = [h['symbol'] for m in measures[:-1] for h in m['harmonies']]
|
||||
self.assertIn('(Fm7)', labels)
|
||||
self.assertIn('(Bb7)', labels)
|
||||
def test_legacy_repeat_model_fields_are_rejected(self):
|
||||
for field in ('repeats', 'endings', 'initial_attributes'):
|
||||
source = parse(xml_score(xml_note()))
|
||||
source['staves'][0]['measures'][0][field] = {}
|
||||
with self.assertRaisesRegex(ValueError, 'repeat notation'):
|
||||
validate_document(source)
|
||||
for field in ('sound_ties', 'printed_ties'):
|
||||
source = parse(xml_score(xml_note()))
|
||||
notes(source)[0]['pitches'][0][field] = []
|
||||
with self.assertRaisesRegex(ValueError, 'pass-specific tie'):
|
||||
validate_document(source)
|
||||
def test_player_styles_preserved(self):
|
||||
self.assertEqual(len(BUILT_IN_STYLES), 50)
|
||||
for text in ('Med.', 'Med. Swing', 'Medium', 'Medium Swing'):
|
||||
|
||||
Reference in New Issue
Block a user