summaryrefslogtreecommitdiff
path: root/silx/test/test_resources.py
diff options
context:
space:
mode:
Diffstat (limited to 'silx/test/test_resources.py')
-rw-r--r--silx/test/test_resources.py200
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')