def test_parse_string_at(self): o = {'a': "@b"} s = dict_to_perl_string(o) self.assertEquals(s, """{"a" => "\\@b"}""") o2 = perl_string_to_python(s) t = type(o2).__name__ self.assertEquals(t, "dict") self.assertEquals(o2['a'], '@b')
def test_parse_string_quotes(self): o = {'a': "\"b\""} s = dict_to_perl_string(o) self.assertEquals(s, """{"a" => "\\"b\\""}""") o2 = perl_string_to_python(s) t = type(o2).__name__ self.assertEquals(t, "dict") self.assertEquals(o2['a'], '"b"')
def test_parse_simple_list(self): o = {'a': ["a", "b", "c"]} s = dict_to_perl_string(o) self.assertEquals(s, """{"a" => ["a", "b", "c"]}""") o2 = perl_string_to_python(s) t = type(o2).__name__ self.assertEquals(t, "dict") self.assertEquals(type(o2['a']).__name__, "list")
def test_parse_simple_int(self): o = {'a': 99} s = dict_to_perl_string(o) self.assertEquals(s, """{"a" => 99}""") o2 = perl_string_to_python(s) t = type(o2).__name__ self.assertEquals(t, "dict") self.assertEquals(o2['a'], 99)
def test_parse_simple_str_pair(self): o = {'a': 'b', 'c': 'd'} s = dict_to_perl_string(o) self.assertEquals(s, """{"a" => "b", "c" => "d"}""") o2 = perl_string_to_python(s) t = type(o2).__name__ self.assertEquals(t, "dict") self.assertEquals(o2['a'], 'b') self.assertEquals(o2['c'], 'd')
def test_parse_complex(self): o = {'a': ["a", "b", "c"], 'b': 'd', 'c': 99} s = dict_to_perl_string(o) self.assertEquals( s, """{"a" => ["a", "b", "c"], "b" => "d", "c" => 99}""") o2 = perl_string_to_python(s) t = type(o2).__name__ self.assertEquals(t, "dict") self.assertEquals(type(o2['a']).__name__, "list") self.assertEquals(o2['b'], 'd') self.assertEquals(o2['c'], 99)
def get_result_for_job(self, job, progress=False): """ Determine if the job has completed. If the job has semaphored children, they are also checked """ """ Also return progress of jobs, completed and total if flag is on """ result = {"id": job.job_id} try: if re.search(r"^(_extended_data_id){1}(\s){1}(\d+){1}", job.input_id): extended_data = job.input_id.split(" ") job_input = self.get_analysis_data_input(extended_data[1]) result['input'] = perl_string_to_python(job_input.data) else: result['input'] = perl_string_to_python(job.input_id) if job.status == 'DONE' and job.result != None: result['status'] = 'complete' result['when_completed'] = job.when_completed result['output'] = job.result.output_dict() else: result['status'] = self.get_job_tree_status(job) if progress: result['progress'] = self.get_jobs_progress(job) except ValueError as e: raise ValueError('Cannot retrieve results for job: {}'.format( job.job_id)) from e return result