def testWrite(self): kit = DrumKit.DrumKit() drum = Drum("One", "d1", "x", True) drum.addNoteHead("x", HeadData()) drum.addNoteHead("g", HeadData(effect="ghost", notationEffect="ghost")) drum.checkShortcuts() kit.addDrum(drum) drum = Drum("Two", "d2", "o") drum.addNoteHead("o", HeadData(notationLine=-5, stemDirection=1)) drum.addNoteHead( "O", HeadData(effect="accent", notationEffect="accent", notationLine=-5, stemDirection=1)) drum.checkShortcuts() kit.addDrum(drum) handle = StringIO() indenter = fileUtils.Indenter(handle) dbfsv0.DrumKitStructureV0().write(kit, indenter) outlines = handle.getvalue().splitlines() self.assertEqual(outlines, [ "KIT_START", " DRUM One,d1,x,True", " NOTEHEAD x 71,96,normal,default,0,none,0,x", " NOTEHEAD g 71,96,ghost,default,0,ghost,0,g", " DRUM Two,d2,o,False", " NOTEHEAD o 71,96,normal,default,-5,none,1,o", " NOTEHEAD O 71,96,accent,default,-5,accent,1,a", "KIT_END" ])
def testRead_NoNoteHeads(self): kitData = """KIT_START DRUM Snare,Sn,o,True DRUM Kick,Bd,o,True KIT_END """ handle = StringIO(kitData) iterator = fileUtils.dbFileIterator(handle) kit = dbfsv0.DrumKitStructureV0().read(iterator) self.assertEqual(len(kit), 2) self.assertEqual(kit[0].name, "Snare") self.assertEqual(len(kit[0]), 6) self.assertEqual(kit[1].name, "Kick") self.assertEqual(len(kit[1]), 4)
def testRead_BadLine(self): kitData = """KIT_START DRUM Snare,Sn,x,True NOTEHEAD x 1,100,default NOTEHEAD g 1,50,ghost DRUM Kick,Bd,o,True NOTEHEAD o 2,100,default NOTEHEAD O 2,127,accent BAD_LINE KIT_END """ handle = StringIO(kitData) iterator = fileUtils.dbFileIterator(handle) self.assertRaises(DBErrors.UnrecognisedLine, dbfsv0.DrumKitStructureV0().read, iterator)
def testNoteHeads(self): kitData = """KIT_START DRUM Snare,Sn,x,True NOTEHEAD x 1,100,default NOTEHEAD g 1,50,ghost DRUM Kick,Bd,o,True NOTEHEAD o 2,100,default NOTEHEAD O 2,127,accent KIT_END """ handle = StringIO(kitData) iterator = fileUtils.dbFileIterator(handle) kit = dbfsv0.DrumKitStructureV0().read(iterator) self.assertEqual(kit.getDefaultHead(0), "x") self.assertEqual(kit.getDefaultHead(1), "o") self.assertEqual(kit.allowedNoteHeads(0), ["x", "g"]) self.assertEqual(kit.shortcutsAndNoteHeads(0), [("x", "x"), ("g", "g")])
def testRead_OldNoteHeads(self): kitData = """KIT_START DRUM Snare,Sn,x,True NOTEHEAD x 1,100,default NOTEHEAD g 1,50,ghost DRUM Kick,Bd,o,True NOTEHEAD o 2,100,default NOTEHEAD O 2,127,accent KIT_END """ handle = StringIO(kitData) iterator = fileUtils.dbFileIterator(handle) kit = dbfsv0.DrumKitStructureV0().read(iterator) self.assertEqual(len(kit), 2) self.assertEqual(kit[0].name, "Snare") self.assertEqual(len(kit[0]), 2) self.assertEqual(kit[1].name, "Kick") self.assertEqual(len(kit[1]), 2)