Example #1
0
class testPieceWithTitle(Lily):
    def setUp(self):
        self.item = PieceTree()
        self.item.GetItem().meta = Meta.Meta(title="hello world")
        self.lilystring = "\\version \"2.18.2\" \n\n\header {\ntitle = \"hello world\"\n\n}<<>>"
class testSetupPiece(unittest.TestCase):

    def setUp(self):
        self.handler = MxmlParser.SetupPiece
        self.tags = []
        self.attrs = {}
        self.chars = {}
        self.data = {}
        self.piece = PieceTree()

    def testNoTags(self):
        self.assertEqual(
            None,
            self.handler(
                self.tags,
                self.attrs,
                self.chars,
                self.piece,
                self.data),
            "ERROR: testNoTags failed: nothing should happen if there are no tags in list")

    def testMetaExists(self):
        self.assertFalse(
            hasattr(
                self.piece.GetItem(),
                "meta"),
            "ERROR: testMetaExists failed: meta should not be set in piece class at beginning of testing")

    def testIrrelevantTag(self):
        self.tags.append("lol")
        self.assertEqual(
            None,
            self.handler(
                self.tags,
                self.attrs,
                self.chars,
                self.piece,
                self.data),
            "ERROR: irrelevant tag should do nothing in TestIrrelevance")

    def testTitleTag(self):
        self.tags.append("movement-title")
        self.chars["movement-title"] = "hehehe"
        self.handler(self.tags, self.attrs, self.chars, self.piece, self.data)
        self.assertTrue(hasattr(self.piece.GetItem(), "meta"),
                        "ERROR: Meta should exist in TestTitleTag")
        self.assertEqual(
            "hehehe",
            self.piece.GetItem().meta.title,
            "ERROR: title set incorrectly in TestTitleTag")

    def testRightsTag(self):
        self.tags.append("rights")
        self.chars["rights"] = "lee"
        self.handler(self.tags, self.attrs, self.chars, self.piece, self.data)
        self.assertTrue(hasattr(self.piece.GetItem(), "meta"))
        self.assertEqual("lee ", self.piece.GetItem().meta.copyright)

    def testCompTag(self):
        self.tags.append("creator")
        self.attrs["creator"] = {"type": "composer"}
        self.chars["creator"] = "lee"

        self.handler(self.tags, self.attrs, self.chars, self.piece, self.data)
        self.assertTrue(
            hasattr(
                self.piece.GetItem(),
                "meta"),
            "ERROR: meta should exist in piece class in TestCompTag")
        self.assertEqual(
            "lee",
            self.piece.GetItem().meta.composer,
            "ERROR: composer should match expected in TestCompTag")

    def testTitleCompTag(self):
        self.tags.append("creator")
        self.attrs["creator"] = {"type": "composer"}
        self.chars["creator"] = "lee"
        self.chars["movement-title"] = "hello world"
        self.handler(self.tags, self.attrs, self.chars, self.piece, self.data)
        self.assertTrue(
            hasattr(
                self.piece.GetItem().meta,
                "composer"),
            "ERROR: meta should have composer attrib in TestTitleCompTag")
        self.assertEqual(
            "lee",
            self.piece.GetItem().meta.composer,
            "ERROR: composer should match test in TestTitleCompTag")
        self.tags.append("movement-title")
        self.handler(self.tags, self.attrs, self.chars, self.piece, self.data)
        self.assertTrue(
            hasattr(
                self.piece.GetItem().meta,
                "title"),
            "ERROR: meta should have title in TestTitleCompTag")
        self.assertEqual(
            "hello world",
            self.piece.GetItem().meta.title,
            "ERROR: meta title set incorrectly in TestTitleCompTag")