def saveScore(self, filename): try: ScoreSerializer.saveScore(self._score, filename) except StandardError, exc: msg = "Error saving DrumBurp file: %s" % unicode(exc) QtGui.QMessageBox.warning(self.parent(), "Score save error", msg) return False
def testReadV1WriteV1(self): print "Read Version 1, Write Version 1" fileglob = os.path.join("testdata", "v1", "*.brp") for testfile in glob.glob(fileglob): print testfile score = ScoreSerializer.loadScore(testfile) written = StringIO() ScoreSerializer.write(score, written, DBConstants.DBFF_1) written.seek(0) score2 = ScoreSerializer.read(written) self.assertEqual(score.hashScore(), score2.hashScore())
def testReadV0WriteV1ReadV1(self): print "Read Version 0, Write Version 1" fileglob = os.path.join("testdata", "v0", "*.brp") for testfile in glob.glob(fileglob): print testfile score = ScoreSerializer.loadScore(testfile) written = StringIO() ScoreSerializer.write(score, written, DBConstants.DBFF_1) written.seek(0) score2 = ScoreSerializer.read(written) self.assertEqual(score.hashScore(), score2.hashScore())
def testReadV1WriteV1(self): print "Read Version 1, Write Version 1" fileglob = os.path.join("testdata", "v1", "*.brp") for testfile in glob.glob(fileglob): print testfile score = ScoreSerializer.loadScore(testfile) written = StringIO() ScoreSerializer.write(score, written, DBConstants.DBFF_1) with fileUtils.DataReader(testfile) as reader: data = reader.read().splitlines() written = written.getvalue().splitlines() self.assertEqual(data, written)
def testVersion0Files(self): print "Version 0" fileglob = os.path.join("testdata", "v0", "*.brp") for testfile in glob.glob(fileglob): print testfile score = ScoreSerializer.loadScore(testfile) written = StringIO() ScoreSerializer.write(score, written, DBConstants.DBFF_0) with fileUtils.DataReader(testfile) as reader: data = reader.read().splitlines() written = written.getvalue().splitlines() while True: try: self._compareData(data, written) break except self.NoFF: written = written[1:] except self.MCounts: written = [ x for x in written if not x.lstrip().startswith("MEASURECOUNTSVISIBLE") ] except self.Barline: data = [x.replace('NORMAL_BAR,', '') for x in data] except self.NoLilyFormat: written = [ x for x in written if not x.lstrip().startswith("LILYFORMAT") ] except self.NoLilySize: written = [ x for x in written if not x.lstrip().startswith("LILYSIZE") ] except self.NoLilyPages: written = [ x for x in written if not x.lstrip().startswith("LILYPAGES") ] except self.NoLilyFill: written = [ x for x in written if not x.lstrip().startswith("LILYFILL") ] except self.ShortNoteHeads: data, written = self._tidyShortNoteHeads(data, written) except self.OldTriplets: data = [x.replace("|^ea|", "|^+a|") for x in data] except self.NoNoteheads: written = [x for x in written if "NOTEHEAD" not in x] data = [x for x in data if "NOTEHEAD" not in x]
def testWriteUnicode(self): tmp = tempfile.NamedTemporaryFile(suffix=".brp", prefix="unicode_test_v1", delete=False) try: tmp.close() score = ScoreFactory.makeEmptyScore(8) score.scoreData.title = u"\u20b9" ScoreSerializer.saveScore(score, tmp.name) score2 = ScoreSerializer.loadScore(tmp.name) self.assertEqual(score.hashScore(), score2.hashScore()) self.assertEqual(score2.scoreData.title, u"\u20b9") finally: try: tmp.close() except RuntimeError: pass os.unlink(tmp.name)
def loadScore(self, filename, quiet=False): try: newScore = ScoreSerializer.loadScore(filename) except DBErrors.DbReadError, exc: if not quiet: msg = "Error loading DrumBurp file %s" % filename QtGui.QMessageBox.warning(self.parent(), "Score load error", msg + "\n" + unicode(exc)) return False
def loadScore(self, filename, quiet = False): try: newScore = ScoreSerializer.loadScore(filename) except DBErrors.DbReadError, exc: if not quiet: msg = "Error loading DrumBurp file %s" % filename QtGui.QMessageBox.warning(self.parent(), "Score load error", msg + "\n" + unicode(exc)) return False
def testReadNoFileFormatNumber(self): handle = StringIO(self.ff_zero_data) score = ScoreSerializer.read(handle) self.assert_(score.lilyFill) self.assertEqual(score.lilypages, 2) self.assertEqual(score.lilysize, 18) self.assertEqual(score.scoreData.title, "Sample") self.assertEqual(score.numSections(), 1) self.assertEqual(score.getSectionTitle(0), "A title") self.assertEqual(score.numMeasures(), 7) self.assert_(score.drumKit[1].isAllowedHead('q'))
def testVersion0Files(self): print "Version 0" fileglob = os.path.join("testdata", "v0", "*.brp") for testfile in glob.glob(fileglob): print testfile score = ScoreSerializer.loadScore(testfile) written = StringIO() ScoreSerializer.write(score, written, DBConstants.DBFF_0) with fileUtils.DataReader(testfile) as reader: data = reader.read().splitlines() written = written.getvalue().splitlines() while True: try: self._compareData(data, written) break except self.NoFF: written = written[1:] except self.MCounts: written = [x for x in written if not x.lstrip().startswith("MEASURECOUNTSVISIBLE")] except self.Barline: data = [x.replace('NORMAL_BAR,', '') for x in data] except self.NoLilyFormat: written = [x for x in written if not x.lstrip().startswith("LILYFORMAT")] except self.NoLilySize: written = [x for x in written if not x.lstrip().startswith("LILYSIZE")] except self.NoLilyPages: written = [x for x in written if not x.lstrip().startswith("LILYPAGES")] except self.ShortNoteHeads: data, written = self._tidyShortNoteHeads(data, written) except self.OldTriplets: data = [x.replace("|^ea|", "|^+a|") for x in data] except self.NoNoteheads: written = [x for x in written if "NOTEHEAD" not in x] data = [x for x in data if "NOTEHEAD" not in x]