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