diff --git a/picard/formats/apev2.py b/picard/formats/apev2.py index 940f23c32..faa0bb5d0 100644 --- a/picard/formats/apev2.py +++ b/picard/formats/apev2.py @@ -275,7 +275,8 @@ class OptimFROGFile(APEv2File): def _info(self, metadata, file): super()._info(metadata, file) - if file.filename.lower().endswith(".ofs"): + # mutagen.File.filename can be either a bytes or str object + if string_(file.filename.lower()).endswith(".ofs"): metadata['~format'] = "OptimFROG DualStream Audio" else: metadata['~format'] = "OptimFROG Lossless Audio" diff --git a/picard/plugin.py b/picard/plugin.py index 31c0b93ad..ced6ee6d7 100644 --- a/picard/plugin.py +++ b/picard/plugin.py @@ -446,7 +446,7 @@ class PluginManager(QtCore.QObject): try: installed_plugin = self.load_plugin(zip_plugin or plugin_name, USER_PLUGIN_DIR) except Exception as e: - log.error('Unable to load plugin: %s.\nError occured: %s', name, e) + log.error('Unable to load plugin: %s.\nError occured: %s', plugin_name, e) installed_plugin = None if installed_plugin is not None: diff --git a/test/data/test.ofr b/test/data/test.ofr new file mode 100644 index 000000000..3e0d3240f Binary files /dev/null and b/test/data/test.ofr differ diff --git a/test/data/test.ofs b/test/data/test.ofs new file mode 100644 index 000000000..3e0d3240f Binary files /dev/null and b/test/data/test.ofs differ diff --git a/test/test_formats.py b/test/test_formats.py index ea00d29a0..5470a71cb 100644 --- a/test/test_formats.py +++ b/test/test_formats.py @@ -534,6 +534,24 @@ class TAKTest(CommonTests.FormatsTest): supports_ratings = False +class OptimFROGLosslessTest(CommonTests.FormatsTest): + testfile = 'test.ofr' + supports_ratings = False + + def test_format(self): + metadata = load_metadata(self.filename) + self.assertEqual(metadata['~format'], 'OptimFROG Lossless Audio') + + +class OptimFROGDUalStreamTest(CommonTests.FormatsTest): + testfile = 'test.ofs' + supports_ratings = False + + def test_format(self): + metadata = load_metadata(self.filename) + self.assertEqual(metadata['~format'], 'OptimFROG DualStream Audio') + + cover_settings = { 'embed_only_one_front_image': True, }