From e573dccc09682c6355d9ef843261a8aef54a907d Mon Sep 17 00:00:00 2001 From: Philipp Wolfer Date: Tue, 12 Mar 2019 08:46:27 +0100 Subject: [PATCH 1/2] PICARD-1490: Fix local cover art loading on Windows --- picard/coverart/__init__.py | 2 +- picard/coverart/image.py | 2 +- test/test_coverart_image.py | 5 +++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/picard/coverart/__init__.py b/picard/coverart/__init__.py index 5554b7089..7731bea8c 100644 --- a/picard/coverart/__init__.py +++ b/picard/coverart/__init__.py @@ -174,7 +174,7 @@ class CoverArt: # local files if coverartimage.url and coverartimage.url.scheme() == 'file': try: - path = coverartimage.url.path() + path = coverartimage.url.toLocalFile() with open(path, 'rb') as file: self._set_metadata(coverartimage, file.read()) except IOError as ioexcept: diff --git a/picard/coverart/image.py b/picard/coverart/image.py index 3db705f12..67b3e4379 100644 --- a/picard/coverart/image.py +++ b/picard/coverart/image.py @@ -431,7 +431,7 @@ class LocalFileCoverArtImage(CoverArtImage): def __init__(self, filepath, types=None, comment='', support_types=False, support_multi_types=False): - url = 'file://' + filepath + url = QUrl.fromLocalFile(filepath).toString() super().__init__(url=url, types=types, comment=comment) self.support_types = support_types self.support_multi_types = support_multi_types diff --git a/test/test_coverart_image.py b/test/test_coverart_image.py index 1f10b6489..a84e4e043 100644 --- a/test/test_coverart_image.py +++ b/test/test_coverart_image.py @@ -100,3 +100,8 @@ class LocalFileCoverArtImageTest(PicardTestCase): image = LocalFileCoverArtImage(path, support_multi_types=True) self.assertFalse(image.support_types) self.assertTrue(image.support_multi_types) + + def test_windows_path(self): + path = 'C:\\Music\\somefile.mp3' + image = LocalFileCoverArtImage(path) + self.assertEqual(image.url.toLocalFile(), 'C:/Music/somefile.mp3') From bba5cef5fe97e3ab0f83c4ef6e9496ffd21111f9 Mon Sep 17 00:00:00 2001 From: Philipp Wolfer Date: Tue, 12 Mar 2019 16:18:45 +0100 Subject: [PATCH 2/2] PICARD-1490: Run Windows path test on Windows only --- test/test_coverart_image.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test/test_coverart_image.py b/test/test_coverart_image.py index a84e4e043..de03d3512 100644 --- a/test/test_coverart_image.py +++ b/test/test_coverart_image.py @@ -1,10 +1,12 @@ #!/usr/bin/env python # coding: utf-8 +import unittest + from test.picardtestcase import ( PicardTestCase, create_fake_png, ) - +from picard.const.sys import IS_WIN from picard.coverart.image import ( CoverArtImage, LocalFileCoverArtImage, @@ -101,6 +103,7 @@ class LocalFileCoverArtImageTest(PicardTestCase): self.assertFalse(image.support_types) self.assertTrue(image.support_multi_types) + @unittest.skipUnless(IS_WIN, "windows test") def test_windows_path(self): path = 'C:\\Music\\somefile.mp3' image = LocalFileCoverArtImage(path)