From 2a698055ca5d47504bcb6139656dc4a95961e59f Mon Sep 17 00:00:00 2001
From: "Janet L. Goldstein" <jgoldste@nrao.edu>
Date: Tue, 1 Mar 2022 09:06:38 -0700
Subject: [PATCH 1/2] gripe-fix-remaining-tests: broken solicitor tests fixed

---
 .../ingest_envoy/test/test_solicitor.py       | 75 +++++++++++++++----
 1 file changed, 61 insertions(+), 14 deletions(-)

diff --git a/apps/cli/executables/pexable/ingest_envoy/test/test_solicitor.py b/apps/cli/executables/pexable/ingest_envoy/test/test_solicitor.py
index f9e51b42b..bfe06a9f6 100644
--- a/apps/cli/executables/pexable/ingest_envoy/test/test_solicitor.py
+++ b/apps/cli/executables/pexable/ingest_envoy/test/test_solicitor.py
@@ -18,12 +18,22 @@
 """
 Tests for solicitor.py
 """
-from ingest_envoy.solicitor import Solicitor
+# pylint: disable=E0401, C0301, C0116, R0201, W0621
+from unittest.mock import patch
+
 import pytest
+from ingest_envoy.solicitor import Solicitor
+
+SOLICIT_WORKFLOWS_PATCH = "ingest_envoy.solicitor.Solicitor.solicit_contents"
+
+
+@pytest.fixture(scope="function")
+def solicitor() -> Solicitor:
+    with patch(SOLICIT_WORKFLOWS_PATCH) as mock_content:
+        mock_content.return_value = expected_metadata
+        return Solicitor("", "calibration", ["http://capability:3457", "http://workflow:3456"])
+
 
-solicitor = Solicitor(
-    "test/input_files/test-metadata.json", "calibration", ["http://capability:3457", "http://workflow:3456"]
-)
 expected_metadata = {
     "fileSetIds": "16B-069_sb32814386_1_001.57685.66193635417",
     "workflowName": "std_calibration",
@@ -43,23 +53,23 @@ expected_metadata = {
 
 class TestSolicitor:
     def test_solicit_contents(self):
-        metadata = solicitor.solicit_contents()
-        assert metadata == expected_metadata
+        with patch(SOLICIT_WORKFLOWS_PATCH) as mock_content:
+            mock_content.return_value = expected_metadata
+            solicitor = Solicitor("", "calibration", ["http://capability:3457", "http://workflow:3456"])
+            mock_content.assert_called()
+            assert solicitor.metadata == expected_metadata
 
-    def test_solicit_workflow_directory_name(self):
+    def test_solicit_workflow_directory_name(self, solicitor: Solicitor):
         expected_workflow_dir_name = "tmp576dknjp"
-
         name = solicitor.solicit_workflow_directory_name()
         assert name == expected_workflow_dir_name
 
-    def test_solicit_processing_creation_time(self):
+    def test_solicit_processing_creation_time(self, solicitor: Solicitor):
         expected_corrected_time = "2021_07_06T21_50_48"
-
         time_string = solicitor.solicit_processing_creation_time()
         assert time_string == expected_corrected_time
 
-    @pytest.mark.skip("Broken by multiversion changes")
-    def test_solicit_parameters(self):
+    def test_solicit_parameters_std_cal(self, solicitor: Solicitor):
         expected_parameters = {
             "sdmId": "16B-069_sb32814386_1_001.57685.66193635417",
             "telescope": "EVLA",
@@ -69,7 +79,44 @@ class TestSolicitor:
             "processingStart": "2021_07_06T21_50_48",
             "destinationDir": "/lustre/aoc/cluster/pipeline/docker/workspaces/spool/tmp576dknjp",
             "workflowDir": "tmp576dknjp",
+            "initialVersionDir": "tmp24i4o1yl",
+            "multiVersion": True,
         }
+        with patch(SOLICIT_WORKFLOWS_PATCH):
+            with patch("ingest_envoy.solicitor.Solicitor.solicit_initial_directory_name", return_value="tmp24i4o1yl"):
+                parameters = solicitor.solicit_parameters()
+                assert parameters["workflowDir"] == expected_parameters["workflowDir"]
+                assert parameters["initialVersionDir"] == expected_parameters["initialVersionDir"]
 
-        parameters = solicitor.solicit_parameters()
-        assert parameters == expected_parameters
+    def test_solicit_parameters_image(self, solicitor: Solicitor):
+        initial_version_dir = "tmprb1se376"
+        cal_source_dir = "tmp576dknjp"
+        metadata = {
+            "fileSetIds": "brain_000.58099.67095825232",
+            "workflowName": "std_cms_imaging",
+            "systemId": "12",
+            "creationTime": "2021-07-29T14:26:31",
+            "productLocator": "uid://evla/execblock/ec082e65-452d-4fec-ad88-f5b4af1f9e36",
+            "calProductLocator": "uid://evla/calibration/c78ccfd6-fe4e-43c6-a5c5-70e5bcfde16b",
+            "projectMetadata": {
+                "projectCode": "Operations",
+                "title": "",
+                "telescope": "EVLA",
+                "startTime": "58099.6710792824",
+                "observer": "VLA Operations",
+            },
+            "destinationDirectory": "/lustre/aoc/cluster/pipeline/docker/workspaces/spool/" + initial_version_dir,
+            "calibrationSourceDirectory": "/lustre/aoc/cluster/pipeline/docker/workspaces/spool/"
+            + cal_source_dir
+            + "/working",
+            "cmsName": "brain_000.58099.67095825232.ms",
+        }
+        with patch(SOLICIT_WORKFLOWS_PATCH, return_value=metadata):
+            with patch(
+                "ingest_envoy.solicitor.Solicitor.solicit_initial_directory_name", return_value=initial_version_dir
+            ):
+                solicitor.argument = "image"
+                parameters = solicitor.solicit_parameters()
+                assert parameters["workflowDir"] == cal_source_dir
+                assert parameters["calSpl"] == metadata["calProductLocator"]
+                assert parameters["multiVersion"] is True
-- 
GitLab


From 720d6d059e87aa1cab9ecb91d2757e5af99effa9 Mon Sep 17 00:00:00 2001
From: "Janet L. Goldstein" <jgoldste@nrao.edu>
Date: Tue, 1 Mar 2022 09:14:15 -0700
Subject: [PATCH 2/2] gripe-fix-remaining-tests: broken solicitor tests fixed

---
 .../pexable/ingest_envoy/test/test_solicitor.py    | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/apps/cli/executables/pexable/ingest_envoy/test/test_solicitor.py b/apps/cli/executables/pexable/ingest_envoy/test/test_solicitor.py
index bfe06a9f6..0b8cbf0e7 100644
--- a/apps/cli/executables/pexable/ingest_envoy/test/test_solicitor.py
+++ b/apps/cli/executables/pexable/ingest_envoy/test/test_solicitor.py
@@ -45,7 +45,7 @@ expected_metadata = {
         "title": "JVLA monitoring of an in-progress extreme scattering event",
         "telescope": "EVLA",
         "startTime": "57685.661952546296",
-        "observer": "Keith Bannister",
+        "observer": "Mickey Mouse",
     },
     "destinationDirectory": "/lustre/aoc/cluster/pipeline/docker/workspaces/spool/tmp576dknjp",
 }
@@ -77,7 +77,7 @@ class TestSolicitor:
             "workflowRequestId": "2",
             "spl": "uid://evla/execblock/48ba4c9d-d7c7-4a8f-9803-1115cd52459b",
             "processingStart": "2021_07_06T21_50_48",
-            "destinationDir": "/lustre/aoc/cluster/pipeline/docker/workspaces/spool/tmp576dknjp",
+            "destinationDir": "/somewhere/over/the/rainbow/tmp576dknjp",
             "workflowDir": "tmp576dknjp",
             "initialVersionDir": "tmp24i4o1yl",
             "multiVersion": True,
@@ -89,7 +89,7 @@ class TestSolicitor:
                 assert parameters["initialVersionDir"] == expected_parameters["initialVersionDir"]
 
     def test_solicit_parameters_image(self, solicitor: Solicitor):
-        initial_version_dir = "tmprb1se376"
+        initial_version_dir = "initial_version_dir"
         cal_source_dir = "tmp576dknjp"
         metadata = {
             "fileSetIds": "brain_000.58099.67095825232",
@@ -97,18 +97,16 @@ class TestSolicitor:
             "systemId": "12",
             "creationTime": "2021-07-29T14:26:31",
             "productLocator": "uid://evla/execblock/ec082e65-452d-4fec-ad88-f5b4af1f9e36",
-            "calProductLocator": "uid://evla/calibration/c78ccfd6-fe4e-43c6-a5c5-70e5bcfde16b",
+            "calProductLocator": "uid://eenie/meanie/miney/moe",
             "projectMetadata": {
                 "projectCode": "Operations",
                 "title": "",
                 "telescope": "EVLA",
                 "startTime": "58099.6710792824",
-                "observer": "VLA Operations",
+                "observer": "Just Us Chickens",
             },
             "destinationDirectory": "/lustre/aoc/cluster/pipeline/docker/workspaces/spool/" + initial_version_dir,
-            "calibrationSourceDirectory": "/lustre/aoc/cluster/pipeline/docker/workspaces/spool/"
-            + cal_source_dir
-            + "/working",
+            "calibrationSourceDirectory": f"/my/stuff/{cal_source_dir}/working",
             "cmsName": "brain_000.58099.67095825232.ms",
         }
         with patch(SOLICIT_WORKFLOWS_PATCH, return_value=metadata):
-- 
GitLab