def test_should_run_false(self): settings = default_settings() job = mock_emop_job(settings) job.postproc_result.multicol_exists = True job.postproc_result.skew_idx_exists = True multi_column_skew = MultiColumnSkew(job) self.assertFalse(multi_column_skew.should_run())
def test_should_run_true_if_all_values_missing(self): settings = default_settings() job = mock_emop_job(settings) job.postproc_result.multicol_exists = False job.postproc_result.skew_idx_exists = False multi_column_skew = MultiColumnSkew(job) self.assertTrue(multi_column_skew.should_run())
def test_run(self): settings = default_settings() settings.emop_home = "/foo" job = mock_emop_job(settings) multi_column_skew = MultiColumnSkew(job) flexmock(os.path).should_receive("isfile").with_args(job.idhmc_xml_file).and_return(True) expected_cmd = [ "python", "/foo/lib/MultiColumnSkew/multiColDetect.py", job.idhmc_xml_file ] results = mock_results_tuple() expected_results = results(None, None, 0) mock_stdout = "{\"skew_idx\": \"0.000000,2.400000,-0.200000,0.200000,\", \"multicol\": \"924.20,1436.72,1894.58\"}" self.mock_rv.communicate.return_value[0] = mock_stdout retval = multi_column_skew.run() args, kwargs = self.mock_popen.call_args self.assertTrue(self.mock_popen.called) self.assertEqual(expected_cmd, args[0]) self.assertEqual(job.postproc_result.multicol, "924.20,1436.72,1894.58") self.assertEqual(job.postproc_result.skew_idx, "0.000000,2.400000,-0.200000,0.200000,") self.assertTupleEqual(expected_results, retval)