From 419ff87feae1f736a3081bcd2fb5c616dfcfd582 Mon Sep 17 00:00:00 2001 From: Philipp Wolfer Date: Wed, 13 May 2020 16:31:40 +0200 Subject: [PATCH] PICARD-1807: Fix error handling when using python-libdiscid discid.disc.DiscError only exists in python-discid, not in the compat version of python-libdiscid. The proper way in both libraries is to access discid.DiscError. --- picard/disc.py | 4 ++-- test/test_disc.py | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 test/test_disc.py diff --git a/picard/disc.py b/picard/disc.py index 6f5ccbcfd..60c4aa155 100644 --- a/picard/disc.py +++ b/picard/disc.py @@ -5,7 +5,7 @@ # Copyright (C) 2006 Matthias Friedrich # Copyright (C) 2007-2008 Lukáš Lalinský # Copyright (C) 2008 Robert Kaye -# Copyright (C) 2009, 2013, 2018-2019 Philipp Wolfer +# Copyright (C) 2009, 2013, 2018-2020 Philipp Wolfer # Copyright (C) 2011-2013 Michael Wiencek # Copyright (C) 2013 Johannes Dewender # Copyright (C) 2013 Sebastian Ramacher @@ -67,7 +67,7 @@ class Disc(QtCore.QObject): self.mcn = disc.mcn self.submission_url = disc.submission_url log.debug("Read disc ID %s with MCN %s", self.id, self.mcn) - except discid.disc.DiscError as e: + except discid.DiscError as e: log.error("Error while reading %r: %s" % (device, str(e))) raise diff --git a/test/test_disc.py b/test/test_disc.py new file mode 100644 index 000000000..08b0308e8 --- /dev/null +++ b/test/test_disc.py @@ -0,0 +1,32 @@ +# -*- coding: utf-8 -*- +# +# Picard, the next-generation MusicBrainz tagger +# +# Copyright (C) 2020 Philipp Wolfer +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +import unittest + +from test.picardtestcase import PicardTestCase + +import picard.disc + + +class DiscTest(PicardTestCase): + @unittest.skipUnless(picard.disc.discid, "discid not available") + def test_raise_disc_error(self): + disc = picard.disc.Disc() + self.assertRaises(picard.disc.discid.DiscError, disc.read, 'notadevice')