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