Index: python/pythontest/.cache/v/cache/lastfailed
===================================================================
--- python/pythontest/.cache/v/cache/lastfailed	(revision 97e09f41b8bac3d39d7f1b0c0fd09cdcfd710d58)
+++ python/pythontest/.cache/v/cache/lastfailed	(revision efa05d7d8fb1b8c511da804430f119f890de2f78)
@@ -1,4 +1,5 @@
 {
   "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
Index: python/pythontest/TestTools.py
===================================================================
--- python/pythontest/TestTools.py	(revision 97e09f41b8bac3d39d7f1b0c0fd09cdcfd710d58)
+++ python/pythontest/TestTools.py	(revision efa05d7d8fb1b8c511da804430f119f890de2f78)
@@ -7,10 +7,12 @@
 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)
 
 
@@ -108,12 +110,49 @@
         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):
Index: python/tools.py
===================================================================
--- python/tools.py	(revision 97e09f41b8bac3d39d7f1b0c0fd09cdcfd710d58)
+++ python/tools.py	(revision efa05d7d8fb1b8c511da804430f119f890de2f78)
@@ -316,5 +316,5 @@
     '''
     @Description:
-        If "filename" exists , it is removed.
+        Remove file if it exists.
         The function does not fail if the file does not exist.
 
@@ -329,5 +329,4 @@
         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
@@ -427,5 +426,5 @@
     @Input:
         directory: string
-            The directory path which should be created.
+            The directory name including the path which should be created.
 
     @Return:
