diff --git a/test/picardtestcase.py b/test/picardtestcase.py index c177f4a6f..6aa2d3741 100644 --- a/test/picardtestcase.py +++ b/test/picardtestcase.py @@ -1,7 +1,9 @@ # -*- coding: utf-8 -*- import json import os +import shutil import struct +from tempfile import mkdtemp import unittest from PyQt5 import QtCore @@ -47,6 +49,10 @@ class PicardTestCase(unittest.TestCase): self.addCleanup(self.tagger.run_cleanup) config.setting = {} + def mktmpdir(self, ignore_errors=False): + tmpdir = mkdtemp(suffix=self.__class__.__name__) + self.addCleanup(shutil.rmtree, tmpdir, ignore_errors=ignore_errors) + return tmpdir def create_fake_png(extra): """Creates fake PNG data that satisfies Picard's internal image type detection""" diff --git a/test/test_bytes2human.py b/test/test_bytes2human.py index 6fcddcac2..581cb8d41 100644 --- a/test/test_bytes2human.py +++ b/test/test_bytes2human.py @@ -1,6 +1,4 @@ import os.path -import shutil -import tempfile from test.picardtestcase import PicardTestCase @@ -12,8 +10,7 @@ class Testbytes2human(PicardTestCase): def setUp(self): super().setUp() # we are using temporary locales for tests - self.tmp_path = tempfile.mkdtemp(suffix=self.__class__.__name__) - self.addCleanup(shutil.rmtree, self.tmp_path) + self.tmp_path = self.mktmpdir() self.localedir = os.path.join(self.tmp_path, 'locale') def test_00(self): diff --git a/test/test_config.py b/test/test_config.py index 01056c881..c0795c50a 100644 --- a/test/test_config.py +++ b/test/test_config.py @@ -20,7 +20,6 @@ import logging import os import shutil -from tempfile import mkdtemp from test.picardtestcase import PicardTestCase @@ -40,8 +39,7 @@ class TestPicardConfigCommon(PicardTestCase): def setUp(self): super().setUp() - self.tmp_directory = mkdtemp(suffix=self.__class__.__name__) - self.addCleanup(shutil.rmtree, self.tmp_directory) + self.tmp_directory = self.mktmpdir() self.configpath = os.path.join(self.tmp_directory, 'test.ini') shutil.copy(os.path.join('test', 'data', 'test.ini'), self.configpath) diff --git a/test/test_coverart_utils.py b/test/test_coverart_utils.py index c7f7db1d9..4155a55d0 100644 --- a/test/test_coverart_utils.py +++ b/test/test_coverart_utils.py @@ -1,8 +1,6 @@ #!/usr/bin/env python # coding: utf-8 import os.path -import shutil -import tempfile from test.picardtestcase import PicardTestCase @@ -14,8 +12,7 @@ class CaaTypeTranslationTest(PicardTestCase): def setUp(self): super().setUp() # we are using temporary locales for tests - self.tmp_path = tempfile.mkdtemp(suffix=self.__class__.__name__) - self.addCleanup(shutil.rmtree, self.tmp_path) + self.tmp_path = self.mktmpdir() self.localedir = os.path.join(self.tmp_path, 'locale') setup_gettext(self.localedir, "C") diff --git a/test/test_emptydir.py b/test/test_emptydir.py index 233fb43ea..02b55c8ee 100644 --- a/test/test_emptydir.py +++ b/test/test_emptydir.py @@ -1,21 +1,17 @@ # -*- coding: utf-8 -*- import os.path -import shutil -from tempfile import ( - mkdtemp, - mkstemp, -) -import unittest +from tempfile import mkstemp + +from test.picardtestcase import PicardTestCase from picard.util import emptydir -class EmptyDirTestCommon(unittest.TestCase): +class EmptyDirTestCommon(PicardTestCase): def create_temp_dir(self, extra_files=(), extra_dirs=(), ignore_errors=False): - tempdir = mkdtemp(suffix=self.__class__.__name__) - self.addCleanup(shutil.rmtree, tempdir, ignore_errors=ignore_errors) + tempdir = self.mktmpdir(ignore_errors=ignore_errors) for f in extra_files: open(os.path.join(tempdir, f), 'a').close() for f in extra_dirs: diff --git a/test/test_file.py b/test/test_file.py index 4377bbd93..b8579e8c3 100644 --- a/test/test_file.py +++ b/test/test_file.py @@ -1,6 +1,4 @@ import os -import shutil -from tempfile import mkdtemp import unittest from test.picardtestcase import PicardTestCase @@ -43,8 +41,7 @@ class TestPreserveTimes(PicardTestCase): def setUp(self): super().setUp() - self.tmp_directory = mkdtemp(suffix=self.__class__.__name__) - self.addCleanup(shutil.rmtree, self.tmp_directory) + self.tmp_directory = self.mktmpdir() filepath = os.path.join(self.tmp_directory, 'a.mp3') self.file = File(filepath) diff --git a/test/test_filesystem.py b/test/test_filesystem.py index ac2ec6a3e..8a31ec68f 100644 --- a/test/test_filesystem.py +++ b/test/test_filesystem.py @@ -2,7 +2,6 @@ from contextlib import suppress import os.path import shutil -from tempfile import mkdtemp from test.picardtestcase import PicardTestCase @@ -22,10 +21,8 @@ class TestFileSystem(PicardTestCase): def setUp(self): super().setUp() - self.src_directory = mkdtemp(suffix=self.__class__.__name__) - self.addCleanup(shutil.rmtree, self.src_directory) - self.tgt_directory = mkdtemp() - self.addCleanup(shutil.rmtree, self.tgt_directory) + self.src_directory = self.mktmpdir() + self.tgt_directory = self.mktmpdir() config.setting = settings.copy() def _prepare_files(self, src_rel_path='', tgt_rel_path=''): diff --git a/test/test_plugins.py b/test/test_plugins.py index 79410546b..82f22e1cd 100644 --- a/test/test_plugins.py +++ b/test/test_plugins.py @@ -19,9 +19,7 @@ import logging import os -import shutil import sys -from tempfile import mkdtemp import unittest from test.picardtestcase import PicardTestCase @@ -110,8 +108,7 @@ class TestPicardPluginsCommonTmpDir(TestPicardPluginsCommon): def setUp(self): super().setUp() - self.tmp_directory = mkdtemp(suffix=self.__class__.__name__) - self.addCleanup(shutil.rmtree, self.tmp_directory) + self.tmp_directory = self.mktmpdir() class TestPicardPluginManager(TestPicardPluginsCommon): diff --git a/test/test_releaseversions.py b/test/test_releaseversions.py index 4717b9a8b..48964ad25 100644 --- a/test/test_releaseversions.py +++ b/test/test_releaseversions.py @@ -1,6 +1,4 @@ import os.path -import shutil -import tempfile from test.picardtestcase import ( PicardTestCase, @@ -25,8 +23,7 @@ class ReleaseTest(PicardTestCase): def setUp(self): super().setUp() # we are using temporary locales for tests - self.tmp_path = tempfile.mkdtemp(suffix=self.__class__.__name__) - self.addCleanup(shutil.rmtree, self.tmp_path) + self.tmp_path = self.mktmpdir() self.localedir = os.path.join(self.tmp_path, 'locale') setup_gettext(self.localedir, 'C') diff --git a/test/test_utils.py b/test/test_utils.py index 62d840df5..2889fde32 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -259,7 +259,7 @@ class ImageInfoTest(PicardTestCase): imageinfo.identify, data) -class CompareBarcodesTest(unittest.TestCase): +class CompareBarcodesTest(PicardTestCase): def test_same(self): self.assertTrue(util.compare_barcodes('0727361379704', '0727361379704')) @@ -278,7 +278,7 @@ class CompareBarcodesTest(unittest.TestCase): self.assertFalse(util.compare_barcodes(None, '0727361379704')) -class MbidValidateTest(unittest.TestCase): +class MbidValidateTest(PicardTestCase): def test_ok(self): self.assertTrue(util.mbid_validate('2944824d-4c26-476f-a981-be849081942f')) @@ -297,7 +297,7 @@ class MbidValidateTest(unittest.TestCase): SimMatchTest = namedtuple('SimMatchTest', 'similarity name') -class SortBySimilarity(unittest.TestCase): +class SortBySimilarity(PicardTestCase): def setUp(self): self.test_values = [ @@ -334,7 +334,7 @@ class SortBySimilarity(unittest.TestCase): self.assertEqual(best_match.num_results, 0) -class GetQtEnum(unittest.TestCase): +class GetQtEnum(PicardTestCase): def test_get_qt_enum(self): from PyQt5.QtCore import QStandardPaths