Merge pull request #1129 from phw/PICARD-1490-fix-local-cover-art

PICARD-1490: Fix local cover art loading on Windows
This commit is contained in:
Laurent Monin
2019-03-12 19:14:15 +01:00
committed by GitHub
3 changed files with 11 additions and 3 deletions

View File

@@ -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:

View File

@@ -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

View File

@@ -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,
@@ -100,3 +102,9 @@ class LocalFileCoverArtImageTest(PicardTestCase):
image = LocalFileCoverArtImage(path, support_multi_types=True)
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)
self.assertEqual(image.url.toLocalFile(), 'C:/Music/somefile.mp3')