From 52aeeec8db265f894c47e5be79fecedbe5323a49 Mon Sep 17 00:00:00 2001 From: Vladimir Diaz Date: Fri, 20 Apr 2018 11:27:08 -0400 Subject: [PATCH] Use alternative way of testing for non-EEXIST exceptions Signed-off-by: Vladimir Diaz --- tests/test_repository_lib.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/tests/test_repository_lib.py b/tests/test_repository_lib.py index 2511ef3c..17538025 100755 --- a/tests/test_repository_lib.py +++ b/tests/test_repository_lib.py @@ -84,6 +84,7 @@ def tearDownClass(cls): # metadata, targets, and key files generated for the test cases. tuf.roledb.clear_roledb(clear_all=True) tuf.keydb.clear_keydb(clear_all=True) + shutil.rmtree(cls.temporary_directory) @@ -853,19 +854,20 @@ def test_create_tuf_client_directory(self): # Test invalid client metadata directory (i.e., non-errno.EEXIST exceptions # should be re-raised.) shutil.rmtree(metadata_directory) - current_client_directory_mode = os.stat(client_directory)[stat.ST_MODE] - # Remove write access for the client directory so that the 'metadata' - # directory cannot be created. create_tuf_client_directory() should - # re-raise the 'OSError' (i.e., errno.EACCES) exception and only handle - # errno.EEXIST. - os.chmod(client_directory, current_client_directory_mode & ~stat.S_IWUSR) + # Save the original metadata directory name so that it can be restored + # after testing. + metadata_directory_name = repo_lib.METADATA_DIRECTORY_NAME + repo_lib.METADATA_DIRECTORY_NAME = '/' + # Creation of the '/' directory is forbidden on all supported OSs. The '/' + # argument to create_tuf_client_directory should cause it to re-raise a + # non-errno.EEXIST exception. self.assertRaises(OSError, repo_lib.create_tuf_client_directory, - repository_directory, client_directory) + repository_directory, '/') - # Reset the client directory's mode. - os.chmod(client_directory, current_client_directory_mode) + # Restore the metadata directory name in repo_lib. + repo_lib.METADATA_DIRECTORY_NAME = metadata_directory_name