From 6fc1faf33b6ca169703c5a56458fb075593241ad Mon Sep 17 00:00:00 2001
From: Christoph Alt <christoph.alt@fau.de>
Date: Mon, 17 Oct 2022 11:10:13 +0200
Subject: [PATCH] refactored upload test

---
 tests/test_upload.py | 42 ++++++++++++++++++++++++++++++++++--------
 1 file changed, 34 insertions(+), 8 deletions(-)

diff --git a/tests/test_upload.py b/tests/test_upload.py
index 9560d11..3e8287a 100644
--- a/tests/test_upload.py
+++ b/tests/test_upload.py
@@ -1,14 +1,31 @@
 import os
 import time
+from unittest.mock import MagicMock
+
+import pytest
 
 from cbutil.data_points import DataPoint
 from cbutil.upload import DBConfig, Uploader, load_config_from_env
 
-DUMMY_CONF = DBConfig("host", 1234, "user_name", "database", "write_user_pw")
 
+@pytest.fixture
+def dummy_conf():
+    return DBConfig("host", 1234, "user_name", "database", "write_user_pw")
+
+
+@pytest.fixture
+def mock_upload(dummy_conf):
+    up = Uploader(dummy_conf)
+    up.client = MagicMock(return_value=True)
+    return up
+
+
+@pytest.fixture
+def dummy_dp():
+    return DataPoint(measurement="Test", time=int(time.time()), fields=dict(), tags=dict())
 
-def setup_env():
 
+def setup_env():
     os.environ["INFLUXDB_HOST"] = "INFLUXDB_HOST"
     os.environ["INFLUXDB_PORT"] = "1234"
     os.environ["INFLUXDB_USER_NAME"] = "INFLUXDB_USER_NAME"
@@ -16,8 +33,8 @@ def setup_env():
     os.environ["INFLUXDB_WRITE_USER_PASSWORD"] = "INFLUXDB_WRITE_USER_PASSWORD"
 
 
-def test_init_with_conf():
-    Uploader(DUMMY_CONF)
+def test_init_with_conf(dummy_conf):
+    Uploader(dummy_conf)
 
 
 def test_load_conf():
@@ -43,8 +60,17 @@ def test_init_from_env():
     assert up.config.write_user_pw == os.environ["INFLUXDB_WRITE_USER_PASSWORD"]
 
 
-def test_upload():
-    up = Uploader(DUMMY_CONF)
+def test_dry_run(mock_upload):
     dp = DataPoint(measurement="Test", time=int(time.time()), fields=dict(), tags=dict())
-    assert up.upload([dp], dry_run=True)
-    assert up.upload([dp.asdict()], dry_run=True)
+    assert mock_upload.upload([dp], dry_run=True, time_precision='s')
+    mock_upload.client.write_points.assert_not_called()
+
+
+def test_upload_as_dp(mock_upload, dummy_dp):
+    assert mock_upload.upload([dummy_dp], time_precision='s')
+    mock_upload.client.write_points.assert_called_with([dummy_dp.asdict()], time_precision='s')
+
+
+def test_upload_as_dict(mock_upload, dummy_dp):
+    assert mock_upload.upload([dummy_dp.asdict()], time_precision='s')
+    mock_upload.client.write_points.assert_called_with([dummy_dp.asdict()], time_precision='s')
-- 
GitLab