当前位置: 首页>>代码示例>>Python>>正文


Python AudioFile.realkeys方法代码示例

本文整理汇总了Python中quodlibet.formats.AudioFile.realkeys方法的典型用法代码示例。如果您正苦于以下问题:Python AudioFile.realkeys方法的具体用法?Python AudioFile.realkeys怎么用?Python AudioFile.realkeys使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在quodlibet.formats.AudioFile的用法示例。


在下文中一共展示了AudioFile.realkeys方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: TAudioFile

# 需要导入模块: from quodlibet.formats import AudioFile [as 别名]
# 或者: from quodlibet.formats.AudioFile import realkeys [as 别名]
class TAudioFile(TestCase):

    def setUp(self):
        config.RATINGS = config.HardCodedRatingsPrefs()
        fd, filename = mkstemp()
        os.close(fd)
        self.quux = AudioFile({
            "~filename": normalize_path(filename, True),
            "album": u"Quuxly"
        })

    def tearDown(self):
        try:
            os.unlink(self.quux["~filename"])
        except EnvironmentError:
            pass

    def test_format_type(self):
        for t in format_types:
            i = AudioFile.__new__(t)
            assert isinstance(i("~format"), text_type)

    def test_tag_text_types(self):
        for t in format_types:
            i = AudioFile.__new__(t)
            i["~filename"] = fsnative(u"foo")
            for tag in TAGS.values():
                name = tag.name
                # brute force
                variants = [
                    name, "~" + name, name + "sort", "~" + name + "sort",
                    name + ":role", "~" + name + ":role",
                    "~" + name + "sort:role", name + "sort:role",
                ]
                for name in variants:
                    if name in FILESYSTEM_TAGS:
                        assert isinstance(i(name, fsnative()), fsnative)
                    else:
                        assert isinstance(i(name), text_type)

    def test_sort(self):
        l = [self.quux, bar_1_2, bar_2_1, bar_1_1]
        l.sort()
        self.assertEqual(l, [bar_1_1, bar_1_2, bar_2_1, self.quux])
        self.assertEqual(self.quux, self.quux)
        self.assertEqual(bar_1_1, bar_1_1)
        self.assertNotEqual(bar_2_1, bar_1_2)

    def test_realkeys(self):
        self.failIf("artist" in self.quux.realkeys())
        self.failIf("~filename" in self.quux.realkeys())
        self.failUnless("album" in self.quux.realkeys())

    def test_iterrealitems(self):
        af = AudioFile({
            "~filename": fsnative(u"foo"),
            "album": u"Quuxly"
        })
        assert list(af.iterrealitems()) == [('album', u'Quuxly')]

    def test_language(self):
        self.assertEqual(bar_va("~language"), "German\nEnglish")
        self.assertEqual(bar_va.list("~language"), ['German', 'English'])
        self.assertEqual(bar_1_1("~language", default="foo"), "foo")
        self.assertEqual(bar_1_1.list("~language"), [])

    def test_trackdisc(self):
        self.failUnlessEqual(bar_1_1("~#track"), 1)
        self.failUnlessEqual(bar_1_1("~#disc"), 1)
        self.failUnlessEqual(bar_1_1("~#tracks"), 3)
        self.failUnlessEqual(bar_1_1("~#discs"), 2)
        self.failIf(bar_1_2("~#discs"))
        self.failIf(bar_2_1("~#tracks"))

    def test_setitem_keys(self):
        af = AudioFile()
        af[u"foo"] = u"bar"
        assert "foo" in af
        assert isinstance(listkeys(af)[0], str)
        af.clear()
        af[u"öäü"] = u"bar"
        assert u"öäü" in af
        assert isinstance(listkeys(af)[0], text_type)

        with self.assertRaises(TypeError):
            af[42] = u"foo"

        if PY3:
            with self.assertRaises(TypeError):
                af[b"foo"] = u"bar"
        else:
            with self.assertRaises(ValueError):
                af[b"\xff"] = u"bar"

    def test_call(self):
        # real keys should lookup the same
        for key in bar_1_1.realkeys():
            self.failUnlessEqual(bar_1_1[key], bar_1_1(key))

        # fake/generated key checks
#.........这里部分代码省略.........
开发者ID:Muges,项目名称:quodlibet,代码行数:103,代码来源:test_formats__audio.py


注:本文中的quodlibet.formats.AudioFile.realkeys方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。