Beispiel #1
0
    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_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)
Beispiel #3
0
    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)
Beispiel #8
0
    def test_bad_parse_status(self):

        tj = TreeherderJob()
        self.assertRaises(TreeherderClientError, tj.add_log_reference, 'foo',
                          'bar', 'baz')
Beispiel #9
0
    def test_sample_data_validation(self):

        for job in self.job_data:

            tj = TreeherderJob(job)
            tj.validate()
Beispiel #10
0
    def test_project_validation(self):

        tj = TreeherderJob(self.job_data[0])
        tj.data['project'] = None
        self.assertRaises(TreeherderClientError, tj.validate)
Beispiel #11
0
    def test_job_guid_validation(self):

        tj = TreeherderJob(self.job_data[0])
        tj.data['job']['job_guid'] = None

        self.assertRaises(TreeherderClientError, tj.validate)
Beispiel #12
0
    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)