def test_data_flow_valid_job_id(self): cmd = [ 'echo', 'additional unit test lines.\n' + 'INFO: the Dataflow monitoring console, please navigate to' + 'https://console.cloud.google.com/dataflow/jobsDetail/locations/' + '{}/jobs/{}?project={}'.format(TEST_LOCATION, TEST_JOB_ID, TEST_PROJECT) ] self.assertEqual(_Dataflow(cmd).wait_for_done(), TEST_JOB_ID)
def test_dataflow_wait_for_done_logging(self, mock_select, mock_popen, mock_logging): mock_logging.info = MagicMock() mock_logging.warning = MagicMock() mock_proc = MagicMock() mock_proc.stderr = MagicMock() mock_proc.stderr.readlines = MagicMock(return_value=['test\n', 'error\n']) mock_stderr_fd = MagicMock() mock_proc.stderr.fileno = MagicMock(return_value=mock_stderr_fd) mock_proc_poll = MagicMock() mock_select.return_value = [[mock_stderr_fd]] def poll_resp_error(): mock_proc.return_code = 1 return True mock_proc_poll.side_effect = [None, poll_resp_error] mock_proc.poll = mock_proc_poll mock_popen.return_value = mock_proc dataflow = _Dataflow(['test', 'cmd']) mock_logging.info.assert_called_with('Running command: %s', 'test cmd') self.assertRaises(Exception, dataflow.wait_for_done)
def test_data_flow_missing_job_id(self): cmd = ['echo', 'unit testing'] self.assertEqual(_Dataflow(cmd).wait_for_done(), None)
def test_data_flow_valid_job_id(self): cmd = [ 'echo', 'additional unit test lines.\n' + 'Submitted job: {}'.format(TEST_JOB_ID) ] self.assertEqual(_Dataflow(cmd).wait_for_done(), TEST_JOB_ID)