nlippis commented on code in PR #13986:
URL: https://github.com/apache/druid/pull/13986#discussion_r1152191930
##########
extensions-contrib/kubernetes-overlord-extensions/src/test/java/org/apache/druid/k8s/overlord/KubernetesTaskRunnerTest.java:
##########
@@ -355,6 +368,243 @@ public void
testTheK8sRestartStateAndHandleJobsThatAlreadyCompletedWhileDown() t
verify(spyRunner, times(1)).run(eq(task));
}
+ @Test
+ public void testStreamTaskReports() throws Exception
+ {
+ Task task = makeTask();
+ K8sTaskId k8sTaskId = new K8sTaskId(task.getId());
+
+ Job job = mock(Job.class);
+ ObjectMeta jobMetadata = mock(ObjectMeta.class);
+ when(jobMetadata.getName()).thenReturn(k8sTaskId.getK8sTaskId());
+ JobStatus status = mock(JobStatus.class);
+ when(status.getActive()).thenReturn(1).thenReturn(null);
+ when(job.getStatus()).thenReturn(status);
+ when(job.getMetadata()).thenReturn(jobMetadata);
+
+ Pod peonPod = mock(Pod.class);
+ ObjectMeta metadata = mock(ObjectMeta.class);
+ when(metadata.getName()).thenReturn("peonPodName");
+ when(peonPod.getMetadata()).thenReturn(metadata);
+ PodStatus podStatus = mock(PodStatus.class);
+ when(podStatus.getPodIP()).thenReturn("SomeIP");
+ when(peonPod.getStatus()).thenReturn(podStatus);
+
+ K8sTaskAdapter adapter = mock(K8sTaskAdapter.class);
+ when(adapter.fromTask(eq(task))).thenReturn(job);
+
+ DruidKubernetesPeonClient peonClient =
mock(DruidKubernetesPeonClient.class);
+
+
when(peonClient.jobExists(eq(k8sTaskId))).thenReturn(Optional.fromNullable(null));
+ when(peonClient.launchJobAndWaitForStart(isA(Job.class), anyLong(),
isA(TimeUnit.class))).thenReturn(peonPod);
+ when(peonClient.getMainJobPod(eq(k8sTaskId))).thenReturn(peonPod);
+ when(peonClient.waitForJobCompletion(eq(k8sTaskId), anyLong(),
isA(TimeUnit.class))).thenReturn(new JobResponse(
+ job,
+ PeonPhase.SUCCEEDED
+ ));
Review Comment:
I am not happy with all of this mocking either, however it is how the other
tests in this class are written so I wanted to continue with the existing
methodology. I have a follow up PR that refactors the run method and will
enable the type of testing that you mentioned. I will propose the PR when all
of the PRs necessary for our immediate purpose have been merged.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]