def test_job_data_type_validation(self): tj = TreeherderJob(self.job_data[0]) # Test detection of undefined value tj.data['job'] = [] self.assertRaises(TreeherderClientError, tj.validate) # Test detection of incorrect property type tj.data['job'] = ['blah', 'blah', 'blah'] self.assertRaises(TreeherderClientError, tj.validate)
def test_job_collection(self): """Confirm the collection matches the sample data""" tjc = TreeherderJobCollection() for job in self.job_data: tj = TreeherderJob(job) tjc.add(tj) self.assertTrue(len(self.job_data) == len(tjc.data))
def test_sample_data_validation(self): for job in self.job_data: tj = TreeherderJob(job) tj.validate()
def test_project_validation(self): tj = TreeherderJob(self.job_data[0]) tj.data['project'] = None self.assertRaises(TreeherderClientError, tj.validate)
def test_job_guid_validation(self): tj = TreeherderJob(self.job_data[0]) tj.data['job']['job_guid'] = None self.assertRaises(TreeherderClientError, tj.validate)
def test_job_sample_data(self): for job in self.job_data: tj = TreeherderJob() tj.add_revision_hash(job['revision_hash']) tj.add_project(job['project']) tj.add_coalesced_guid(job['coalesced']) tj.add_job_guid(job['job']['job_guid']) tj.add_job_name(job['job']['name']) tj.add_job_symbol(job['job']['job_symbol']) tj.add_group_name(job['job']['group_name']) tj.add_group_symbol(job['job']['group_symbol']) tj.add_description(job['job']['desc']) tj.add_product_name(job['job']['product_name']) tj.add_state(job['job']['state']) tj.add_result(job['job']['result']) tj.add_reason(job['job']['reason']) tj.add_who(job['job']['who']) tj.add_submit_timestamp(job['job']['submit_timestamp']) tj.add_start_timestamp(job['job']['start_timestamp']) tj.add_end_timestamp(job['job']['end_timestamp']) tj.add_machine(job['job']['machine']) tj.add_build_info( job['job']['build_platform']['os_name'], job['job']['build_platform']['platform'], job['job']['build_platform']['architecture'] ) tj.add_machine_info( job['job']['machine_platform']['os_name'], job['job']['machine_platform']['platform'], job['job']['machine_platform']['architecture'] ) tj.add_option_collection(job['job']['option_collection']) tj.add_log_reference( 'builds-4h', job['job']['log_references'][0]['url']) # if the blob is empty, TreeherderJob will ignore the insertion job['job']['artifacts'][0]['blob'] = "some value" tj.add_artifact( job['job']['artifacts'][0]['name'], job['job']['artifacts'][0]['type'], job['job']['artifacts'][0]['blob']) self.compare_structs(tj.data, job) # Confirm we get the same dict if we initialize from # a job dict tj_dict = TreeherderJob(job) self.compare_structs(tj.data, tj_dict.data)
def test_bad_parse_status(self): tj = TreeherderJob() self.assertRaises(TreeherderClientError, tj.add_log_reference, 'foo', 'bar', 'baz')
def test_job_sample_data(self): for job in self.job_data: tj = TreeherderJob() tj.add_revision_hash(job['revision_hash']) tj.add_project(job['project']) tj.add_coalesced_guid(job['coalesced']) tj.add_job_guid(job['job']['job_guid']) tj.add_job_name(job['job']['name']) tj.add_job_symbol(job['job']['job_symbol']) tj.add_group_name(job['job']['group_name']) tj.add_group_symbol(job['job']['group_symbol']) tj.add_description(job['job']['desc']) tj.add_product_name(job['job']['product_name']) tj.add_state(job['job']['state']) tj.add_result(job['job']['result']) tj.add_reason(job['job']['reason']) tj.add_who(job['job']['who']) tj.add_submit_timestamp(job['job']['submit_timestamp']) tj.add_start_timestamp(job['job']['start_timestamp']) tj.add_end_timestamp(job['job']['end_timestamp']) tj.add_machine(job['job']['machine']) tj.add_build_url(job['job']['build_url']) tj.add_build_info(job['job']['build_platform']['os_name'], job['job']['build_platform']['platform'], job['job']['build_platform']['architecture']) tj.add_machine_info(job['job']['machine_platform']['os_name'], job['job']['machine_platform']['platform'], job['job']['machine_platform']['architecture']) tj.add_option_collection(job['job']['option_collection']) tj.add_log_reference('builds-4h', job['job']['log_references'][0]['url']) # if the blob is empty, TreeherderJob will ignore the insertion job['job']['artifacts'][0]['blob'] = "some value" tj.add_artifact(job['job']['artifacts'][0]['name'], job['job']['artifacts'][0]['type'], job['job']['artifacts'][0]['blob']) self.compare_structs(tj.data, job) # Confirm we get the same dict if we initialize from # a job dict tj_dict = TreeherderJob(job) self.compare_structs(tj.data, tj_dict.data)
def test_job_sample_data(self): for job in self.job_data: tj = TreeherderJob() tj.add_revision_hash(job["revision_hash"]) tj.add_project(job["project"]) tj.add_coalesced_guid(job["coalesced"]) tj.add_job_guid(job["job"]["job_guid"]) tj.add_job_name(job["job"]["name"]) tj.add_job_symbol(job["job"]["job_symbol"]) tj.add_group_name(job["job"]["group_name"]) tj.add_group_symbol(job["job"]["group_symbol"]) tj.add_description(job["job"]["desc"]) tj.add_product_name(job["job"]["product_name"]) tj.add_state(job["job"]["state"]) tj.add_result(job["job"]["result"]) tj.add_reason(job["job"]["reason"]) tj.add_who(job["job"]["who"]) tj.add_submit_timestamp(job["job"]["submit_timestamp"]) tj.add_start_timestamp(job["job"]["start_timestamp"]) tj.add_end_timestamp(job["job"]["end_timestamp"]) tj.add_machine(job["job"]["machine"]) tj.add_build_url(job["job"]["build_url"]) tj.add_build_info( job["job"]["build_platform"]["os_name"], job["job"]["build_platform"]["platform"], job["job"]["build_platform"]["architecture"], ) tj.add_machine_info( job["job"]["machine_platform"]["os_name"], job["job"]["machine_platform"]["platform"], job["job"]["machine_platform"]["architecture"], ) tj.add_option_collection(job["job"]["option_collection"]) tj.add_log_reference("builds-4h", job["job"]["log_references"][0]["url"]) # if the blob is empty, TreeherderJob will ignore the insertion job["job"]["artifacts"][0]["blob"] = "some value" tj.add_artifact( job["job"]["artifacts"][0]["name"], job["job"]["artifacts"][0]["type"], job["job"]["artifacts"][0]["blob"], ) self.compare_structs(tj.data, job) # Confirm we get the same dict if we initialize from # a job dict tj_dict = TreeherderJob(job) self.compare_structs(tj.data, tj_dict.data)