diff options
Diffstat (limited to 'silx/test/test_resources.py')
-rw-r--r-- | silx/test/test_resources.py | 200 |
1 files changed, 0 insertions, 200 deletions
diff --git a/silx/test/test_resources.py b/silx/test/test_resources.py deleted file mode 100644 index 7f5f432..0000000 --- a/silx/test/test_resources.py +++ /dev/null @@ -1,200 +0,0 @@ -# coding: utf-8 -# /*########################################################################## -# -# Copyright (c) 2016-2018 European Synchrotron Radiation Facility -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -# THE SOFTWARE. -# -# ###########################################################################*/ -"""Test for resource files management.""" - -__authors__ = ["T. Vincent"] -__license__ = "MIT" -__date__ = "08/03/2019" - - -import os -import unittest -import shutil -import tempfile - -import silx.resources - - -class TestResources(unittest.TestCase): - - @classmethod - def setUpClass(cls): - super(TestResources, cls).setUpClass() - - cls.tmpDirectory = tempfile.mkdtemp(prefix="resource_") - os.mkdir(os.path.join(cls.tmpDirectory, "gui")) - destination_dir = os.path.join(cls.tmpDirectory, "gui", "icons") - os.mkdir(destination_dir) - source = silx.resources.resource_filename("gui/icons/zoom-in.png") - destination = os.path.join(destination_dir, "foo.png") - shutil.copy(source, destination) - source = silx.resources.resource_filename("gui/icons/zoom-out.svg") - destination = os.path.join(destination_dir, "close.png") - shutil.copy(source, destination) - - @classmethod - def tearDownClass(cls): - super(TestResources, cls).tearDownClass() - shutil.rmtree(cls.tmpDirectory) - - def setUp(self): - # Store the original configuration - self._oldResources = dict(silx.resources._RESOURCE_DIRECTORIES) - unittest.TestCase.setUp(self) - - def tearDown(self): - unittest.TestCase.tearDown(self) - # Restiture the original configuration - silx.resources._RESOURCE_DIRECTORIES = self._oldResources - - def test_resource_dir(self): - """Get a resource directory""" - icons_dirname = silx.resources.resource_filename('gui/icons/') - self.assertTrue(os.path.isdir(icons_dirname)) - - def test_resource_file(self): - """Get a resource file name""" - filename = silx.resources.resource_filename('gui/icons/colormap.png') - self.assertTrue(os.path.isfile(filename)) - - def test_resource_nonexistent(self): - """Get a non existent resource""" - filename = silx.resources.resource_filename('non_existent_file.txt') - self.assertFalse(os.path.exists(filename)) - - def test_isdir(self): - self.assertTrue(silx.resources.is_dir('gui/icons')) - - def test_not_isdir(self): - self.assertFalse(silx.resources.is_dir('gui/icons/colormap.png')) - - def test_list_dir(self): - result = silx.resources.list_dir('gui/icons') - self.assertTrue(len(result) > 10) - - # With prefixed resources - - def test_resource_dir_with_prefix(self): - """Get a resource directory""" - icons_dirname = silx.resources.resource_filename('silx:gui/icons/') - self.assertTrue(os.path.isdir(icons_dirname)) - - def test_resource_file_with_prefix(self): - """Get a resource file name""" - filename = silx.resources.resource_filename('silx:gui/icons/colormap.png') - self.assertTrue(os.path.isfile(filename)) - - def test_resource_nonexistent_with_prefix(self): - """Get a non existent resource""" - filename = silx.resources.resource_filename('silx:non_existent_file.txt') - self.assertFalse(os.path.exists(filename)) - - def test_isdir_with_prefix(self): - self.assertTrue(silx.resources.is_dir('silx:gui/icons')) - - def test_not_isdir_with_prefix(self): - self.assertFalse(silx.resources.is_dir('silx:gui/icons/colormap.png')) - - def test_list_dir_with_prefix(self): - result = silx.resources.list_dir('silx:gui/icons') - self.assertTrue(len(result) > 10) - - # Test new repository - - def test_repository_not_exists(self): - """The resource from 'test' is available""" - self.assertRaises(ValueError, silx.resources.resource_filename, 'test:foo.png') - - def test_adding_test_directory(self): - """The resource from 'test' is available""" - silx.resources.register_resource_directory("test", "silx.test.resources", forced_path=self.tmpDirectory) - path = silx.resources.resource_filename('test:gui/icons/foo.png') - self.assertTrue(os.path.exists(path)) - - def test_adding_test_directory_no_override(self): - """The resource from 'silx' is still available""" - silx.resources.register_resource_directory("test", "silx.test.resources", forced_path=self.tmpDirectory) - filename1 = silx.resources.resource_filename('gui/icons/close.png') - filename2 = silx.resources.resource_filename('silx:gui/icons/close.png') - filename3 = silx.resources.resource_filename('test:gui/icons/close.png') - self.assertTrue(os.path.isfile(filename1)) - self.assertTrue(os.path.isfile(filename2)) - self.assertTrue(os.path.isfile(filename3)) - self.assertEqual(filename1, filename2) - self.assertNotEqual(filename1, filename3) - - def test_adding_test_directory_non_existing(self): - """A resource while not exists in test is not available anyway it exists - in silx""" - silx.resources.register_resource_directory("test", "silx.test.resources", forced_path=self.tmpDirectory) - resource_name = "gui/icons/colormap.png" - path = silx.resources.resource_filename('test:' + resource_name) - path2 = silx.resources.resource_filename('silx:' + resource_name) - self.assertFalse(os.path.exists(path)) - self.assertTrue(os.path.exists(path2)) - - -class TestResourcesWithoutPkgResources(TestResources): - - @classmethod - def setUpClass(cls): - super(TestResourcesWithoutPkgResources, cls).setUpClass() - cls._old = silx.resources.pkg_resources - silx.resources.pkg_resources = None - - @classmethod - def tearDownClass(cls): - silx.resources.pkg_resources = cls._old - del cls._old - super(TestResourcesWithoutPkgResources, cls).tearDownClass() - - -class TestResourcesWithCustomDirectory(TestResources): - - @classmethod - def setUpClass(cls): - super(TestResourcesWithCustomDirectory, cls).setUpClass() - cls._old = silx.resources._RESOURCES_DIR - base = os.path.dirname(silx.resources.__file__) - silx.resources._RESOURCES_DIR = base - - @classmethod - def tearDownClass(cls): - silx.resources._RESOURCES_DIR = cls._old - del cls._old - super(TestResourcesWithCustomDirectory, cls).tearDownClass() - - -def suite(): - loadTests = unittest.defaultTestLoader.loadTestsFromTestCase - test_suite = unittest.TestSuite() - test_suite.addTest(loadTests(TestResources)) - test_suite.addTest(loadTests(TestResourcesWithoutPkgResources)) - test_suite.addTest(loadTests(TestResourcesWithCustomDirectory)) - return test_suite - - -if __name__ == '__main__': - unittest.main(defaultTest='suite') |