def test_numeric(self):
        p = PanePattern("~#lastplayed")
        self.failUnlessEqual(p.title, "Last Played")
        self.failUnlessEqual(p.tags, set(["~#lastplayed"]))

        self.failUnlessEqual(p.format(SONGS[0]), ["0"])
        self.failIf(p.has_markup)
    def test_tied(self):
        p = PanePattern("~title~artist")
        self.failUnlessEqual(p.title, "Title / Artist")
        self.failUnlessEqual(p.tags, set(["title", "artist"]))

        self.failUnlessEqual(p.format(SONGS[0]), ["three - boris"])
        self.failIf(p.has_markup)
    def test_tag(self):
        p = PanePattern("title")
        self.failUnlessEqual(p.title, "Title")
        self.failUnlessEqual(p.tags, set(["title"]))

        self.failUnlessEqual(p.format(SONGS[0]), ["three"])
        self.failUnless("3" in p.format_display(ALBUM))
        self.failIf(p.has_markup)
    def test_group(self):
        p = PanePattern("a\:b:<title>")
        self.failUnlessEqual(p.title, "A:B")
        self.failUnlessEqual(set(p.format_display(ALBUM).split(", ")),
                             set(["one", "two", "three"]))

        p = PanePattern("foo:~#lastplayed")
        self.failUnlessEqual(p.format_display(ALBUM), "0")

        p = PanePattern("foo:title")
        self.failUnlessEqual(set(p.format_display(ALBUM).split(", ")),
                             set(["one", "two", "three"]))