From efa05d7d8fb1b8c511da804430f119f890de2f78 Mon Sep 17 00:00:00 2001 From: Anne Philipp <anne.philipp@univie.ac.at> Date: Sun, 2 Sep 2018 17:05:06 +0200 Subject: [PATCH] added more testcases --- python/pythontest/.cache/v/cache/lastfailed | 1 + python/pythontest/TestTools.py | 53 ++++++++++++++++++--- python/tools.py | 5 +- 3 files changed, 49 insertions(+), 10 deletions(-) diff --git a/python/pythontest/.cache/v/cache/lastfailed b/python/pythontest/.cache/v/cache/lastfailed index 068d2ba..92dcb0f 100644 --- a/python/pythontest/.cache/v/cache/lastfailed +++ b/python/pythontest/.cache/v/cache/lastfailed @@ -1,5 +1,6 @@ { "TestTools.py": true, + "TestTools.py::TestTools::()::test_failany_silent_remove": true, "TestTools.py::TestTools::test_init128": true, "TestTools.py::TestTools::test_to_param_id": true } \ No newline at end of file diff --git a/python/pythontest/TestTools.py b/python/pythontest/TestTools.py index 5803036..df41b0e 100644 --- a/python/pythontest/TestTools.py +++ b/python/pythontest/TestTools.py @@ -6,12 +6,14 @@ import sys import subprocess import pipes import pytest +from unittest.mock import patch sys.path.append('../') import _config -from tools import (init128, to_param_id, my_error, read_ecenv, - get_cmdline_arguments, submit_job_to_ecserver, - put_file_to_ecserver) +from tools import (get_cmdline_arguments, read_ecenv, clean_up, my_error, + normal_exit, product, silent_remove, init128, to_param_id, + get_list_as_string, make_dir, put_file_to_ecserver, + submit_job_to_ecserver) class TestTools(): @@ -107,14 +109,51 @@ class TestTools(): def test_product(self): assert True - def test_silent_remove(self): - assert True + def test_success_silent_remove(self, capfd): + testfile = 'testfile.test' + open(testfile, 'w').close() + silent_remove(testfile) + out, err = capfd.readouterr() + assert os.path.isfile(testfile) == False + assert out == '' + + def test_failnotexist_silent_remove(self, capfd): + testfile = 'testfile.test' + silent_remove(testfile) + out, err = capfd.readouterr() + assert os.path.isfile(testfile) == False + assert out == '' + + @patch(silent_remove) + def test_failany_silent_remove(self, mock_silent_remove): + testfile = 'testfileany.test' + mock_silent_remove.side_effect = OSError + with pytest.raises(OSError) as pytest_wrapped_e: + silent_remove(testfile) + #out, err = capfd.readouterr() + #assert os.path.isfile(testfile) == False + #assert out == '' def test_get_list_as_string(self): assert True - def test_make_dir(self): - assert True + def test_warningexist_make_dir(self, capfd): + testdir = 'TestData' + make_dir(testdir) + out, err = capfd.readouterr() + assert out.strip() == 'WARNING: Directory {0} already exists!'.format(testdir) + + def test_failany_make_dir(self): + testdir = '/test' # force a permission denied error + with pytest.raises(OSError) as pytest_wrapped_e: + make_dir(testdir) + assert pytest_wrapped_e.type == OSError + + def test_success_make_dir(self): + testdir = 'testing_mkdir' + make_dir(testdir) + assert os.path.exists(testdir) == True + os.rmdir(testdir) def test_fail_put_file_to_ecserver(self): ecuid=os.environ['ECUID'] diff --git a/python/tools.py b/python/tools.py index 3c70063..a432e64 100644 --- a/python/tools.py +++ b/python/tools.py @@ -315,7 +315,7 @@ def product(*args, **kwds): def silent_remove(filename): ''' @Description: - If "filename" exists , it is removed. + Remove file if it exists. The function does not fail if the file does not exist. @Input: @@ -328,7 +328,6 @@ def silent_remove(filename): try: os.remove(filename) except OSError as e: - # this would be "except OSError, e:" before Python 2.6 if e.errno != errno.ENOENT: # errno.ENOENT = no such file or directory raise # re-raise exception if a different error occured @@ -426,7 +425,7 @@ def make_dir(directory): @Input: directory: string - The directory path which should be created. + The directory name including the path which should be created. @Return: <nothing> -- GitLab