From 5d3248f19518547c922f37bf73a473b7914c746b Mon Sep 17 00:00:00 2001
From: Felix Kleinert <f.kleinert@fz-juelich.de>
Date: Mon, 6 Apr 2020 18:57:31 +0200
Subject: [PATCH] update helpers and test_helpers

---
 src/helpers.py       |  9 +++------
 test/test_helpers.py | 46 +++++++++++++++++++++++++-------------------
 2 files changed, 29 insertions(+), 26 deletions(-)

diff --git a/src/helpers.py b/src/helpers.py
index 3ea9d618..45cc996b 100644
--- a/src/helpers.py
+++ b/src/helpers.py
@@ -103,12 +103,9 @@ def get_host():
 
 
 def prepare_host(create_new=True, sampling="daily"):
-    hostname = socket.gethostname()
-    try:
-        # user = os.getlogin()
-        user = getpass.getuser()
-    except OSError:
-        user = "default"
+    hostname = get_host()
+    user = getpass.getuser()
+    
     if hostname == "ZAM144":
         path = f"/home/{user}/Data/toar_{sampling}/"
     elif hostname == "zam347":
diff --git a/test/test_helpers.py b/test/test_helpers.py
index 623c0bf8..4a655a21 100644
--- a/test/test_helpers.py
+++ b/test/test_helpers.py
@@ -126,13 +126,18 @@ class TestTimeTracking:
             assert t.end is None
         expression = PyTestRegex(r"my job finished after \d+:\d+:\d+ \(hh:mm:ss\)")
         assert caplog.record_tuples[-1] == ('root', 20, expression)
+        
+
+class TestGetHost:
+    def test_get_host()
+        assert prepare_host() == 'root'
 
 
 class TestPrepareHost:
 
     @mock.patch("socket.gethostname", side_effect=["linux-aa9b", "ZAM144", "zam347", "jrtest", "jwtest",
                                                    "runner-6HmDp9Qd-project-2411-concurrent"])
-    @mock.patch("os.getlogin", return_value="testUser")
+    @mock.patch("getpass.getuser", return_value="testUser")
     @mock.patch("os.path.exists", return_value=True)
     def test_prepare_host(self, mock_host, mock_user, mock_path):
         assert prepare_host() == "/home/testUser/machinelearningtools/data/toar_daily/"
@@ -149,7 +154,8 @@ class TestPrepareHost:
             prepare_host()
         assert "unknown host 'NotExistingHostName'" in e.value.args[0]
 
-    @mock.patch("os.getlogin", return_value="zombie21")
+    #@mock.patch("os.getlogin", return_value="zombie21")
+    @mock.patch("getpass.getuser", return_value="zombie21")
     @mock.patch("src.helpers.check_path_and_create", side_effect=PermissionError)
     def test_error_handling(self, mock_cpath, mock_user):
         # if "runner-6HmDp9Qd-project-2411-concurrent" not in platform.node():
@@ -162,26 +168,26 @@ class TestPrepareHost:
         # assert "does not exist for host 'linux-aa9b'" in e.value.args[0]
         assert PyTestRegex(r"path '.*' does not exist for host '.*'\.") == e.value.args[0]
 
-    @mock.patch("socket.gethostname", side_effect=["linux-aa9b", "ZAM144", "zam347", "jrtest", "jwtest",
-                                                   "runner-6HmDp9Qd-project-2411-concurrent"])
-    @mock.patch("os.getlogin", side_effect=OSError)
-    @mock.patch("os.path.exists", return_value=True)
-    def test_os_error(self, mock_path, mock_user, mock_host):
-        path = prepare_host()
-        assert path == "/home/default/machinelearningtools/data/toar_daily/"
-        path = prepare_host()
-        assert path == "/home/default/Data/toar_daily/"
-        path = prepare_host()
-        assert path == "/home/default/Data/toar_daily/"
-        path = prepare_host()
-        assert path == "/p/project/cjjsc42/default/DATA/toar_daily/"
-        path = prepare_host()
-        assert path == "/p/home/jusers/default/juwels/intelliaq/DATA/toar_daily/"
-        path = prepare_host()
-        assert path == '/home/default/machinelearningtools/data/toar_daily/'
+#     @mock.patch("socket.gethostname", side_effect=["linux-aa9b", "ZAM144", "zam347", "jrtest", "jwtest",
+#                                                    "runner-6HmDp9Qd-project-2411-concurrent"])
+#     @mock.patch("os.getlogin", side_effect=OSError)
+#     @mock.patch("os.path.exists", return_value=True)
+#     def test_os_error(self, mock_path, mock_user, mock_host):
+#         path = prepare_host()
+#         assert path == "/home/default/machinelearningtools/data/toar_daily/"
+#         path = prepare_host()
+#         assert path == "/home/default/Data/toar_daily/"
+#         path = prepare_host()
+#         assert path == "/home/default/Data/toar_daily/"
+#         path = prepare_host()
+#         assert path == "/p/project/cjjsc42/default/DATA/toar_daily/"
+#         path = prepare_host()
+#         assert path == "/p/home/jusers/default/juwels/intelliaq/DATA/toar_daily/"
+#         path = prepare_host()
+#         assert path == '/home/default/machinelearningtools/data/toar_daily/'
 
     @mock.patch("socket.gethostname", side_effect=["linux-aa9b"])
-    @mock.patch("os.getlogin", return_value="testUser")
+    @mock.patch("getpass.getuser", return_value="testUser")
     @mock.patch("os.path.exists", return_value=False)
     @mock.patch("os.makedirs", side_effect=None)
     def test_os_path_exists(self, mock_host, mock_user, mock_path, mock_check):
-- 
GitLab