From fd1a2b1b0c17afafd8d57ced2753e507d2c4b5f0 Mon Sep 17 00:00:00 2001
From: Bastien Abadie <bastien@nextcairn.com>
Date: Mon, 31 Aug 2020 16:25:22 +0200
Subject: [PATCH] Cover the 3 cases

---
 tests/test_base_worker.py | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/tests/test_base_worker.py b/tests/test_base_worker.py
index 2eafc8d5..bb329321 100644
--- a/tests/test_base_worker.py
+++ b/tests/test_base_worker.py
@@ -34,10 +34,29 @@ def test_init_var_ponos_data_given(monkeypatch):
 
 
 def test_init_var_worker_version_id_missing(monkeypatch):
+    monkeypatch.setattr(sys, "argv", ["worker"])
     monkeypatch.delenv("WORKER_VERSION_ID")
     worker = BaseWorker()
+    worker.configure()
     assert worker.worker_version_id is None
     assert worker.is_read_only is True
+    assert worker.config == {}  # default empty case
+
+
+def test_init_var_worker_local_file(monkeypatch, tmp_path):
+    # Build a dummy yaml config file
+    config = tmp_path / "config.yml"
+    config.write_text("---\nlocalKey: abcdef123")
+
+    monkeypatch.setattr(sys, "argv", ["worker", "-c", str(config)])
+    monkeypatch.delenv("WORKER_VERSION_ID")
+    worker = BaseWorker()
+    worker.configure()
+    assert worker.worker_version_id is None
+    assert worker.is_read_only is True
+    assert worker.config == {"localKey": "abcdef123"}  # Use a local file for devs
+
+    config.unlink()
 
 
 def test_cli_default(mocker, mock_worker_version_api):
@@ -46,6 +65,8 @@ def test_cli_default(mocker, mock_worker_version_api):
     assert not spy.called
     assert logger.level == logging.NOTSET
     assert not hasattr(worker, "api_client")
+
+    mocker.patch.object(sys, "argv", ["worker"])
     worker.configure()
 
     assert spy.called
@@ -53,6 +74,9 @@ def test_cli_default(mocker, mock_worker_version_api):
     assert not worker.args.verbose
     assert logger.level == logging.NOTSET
     assert worker.api_client
+    assert worker.worker_version_id == "12341234-1234-1234-1234-123412341234"
+    assert worker.is_read_only is False
+    assert worker.config == {"someKey": "someValue"}  # from API
 
     logger.setLevel(logging.NOTSET)
 
@@ -74,5 +98,6 @@ def test_cli_arg_verbose_given(mocker, mock_worker_version_api):
     assert worker.api_client
     assert worker.worker_version_id == "12341234-1234-1234-1234-123412341234"
     assert worker.is_read_only is False
+    assert worker.config == {"someKey": "someValue"}  # from API
 
     logger.setLevel(logging.NOTSET)
-- 
GitLab