예제 #1
0
파일: test.py 프로젝트: troytop/InfraBox
    def run_github_status_post_succeeded(self, execute_sql, get_env, requests_post):
        job_data = copy.deepcopy(self.job_data)
        job_data['state'] = self.job_state
        get_env.return_value = 'GITHUB_URL'
        requests_post.return_value = MockResponse(201)

        sql_result = [[job_data],
                      [self.project_data],
                      [self.build_data],
                      [self.token_data],
                      [self.commit_data]]

        def side_effect(_1, _2, _3):
            return sql_result.pop(0)

        execute_sql.side_effect = side_effect
        handle_job_update(None, self.event)
        data = '{"state": "%s", "target_url": "GITHUB_URL/dashboard/#/project/projectname/build/123/123/job/jobname", "description": "InfraBox", "context": "Job: jobname"}' % self.expected_github_status
        requests_post.assert_called_with(
            'status_url',
            data=data,
            headers={'Authorization': 'token token',
                     'User-Agent': 'InfraBox'},
            timeout=10,
            verify=False)
예제 #2
0
    def test_github_status_post_failed(self, execute_sql, get_env,
                                       requests_post):
        get_env.return_value = 'GITHUB_URL'
        requests_post.return_value = MockResponse(404)

        sql_result = [[self.job_data], [self.project_data], [self.build_data],
                      [self.token_data], [self.commit_data],
                      [self.cluster_data]]

        def side_effect(_1, _2, _3):
            return sql_result.pop(0)

        execute_sql.side_effect = side_effect
        handle_job_update(None, self.event)

        requests_post.assert_called_with(
            'status_url',
            data=
            '{"state": "pending", "target_url": "GITHUB_URL/dashboard/#/project/projectname/build/123/123/job/jobname", "description": "InfraBox", "context": "Job: jobname"}',
            headers={
                'Authorization': 'token token',
                'User-Agent': 'InfraBox'
            },
            timeout=10,
            verify=False)
예제 #3
0
파일: test.py 프로젝트: troytop/InfraBox
    def test_build_not_found(self, execute_sql):
        sql_result = [[self.job_data], [self.project_data], []]

        def side_effect(_1, _2, _3):
            return sql_result.pop(0)

        execute_sql.side_effect = side_effect
        r = handle_job_update(None, self.event)
        self.assertFalse(r)
예제 #4
0
파일: test.py 프로젝트: troytop/InfraBox
    def test_project_is_not_github(self, execute_sql):
        project_data = copy.deepcopy(self.project_data)
        project_data['type'] = 'gerrit'

        sql_result = [[self.job_data], []]

        def side_effect(_1, _2, _3):
            return sql_result.pop(0)

        execute_sql.side_effect = side_effect
        r = handle_job_update(None, self.event)
        self.assertFalse(r)
예제 #5
0
파일: tests.py 프로젝트: Asghan86/infrabox
    def run_github_status_post_succeeded(self, execute_sql, get_env,
                                         requests_post):
        self.update['data']['job']['state'] = self.job_state
        get_env.return_value = 'GITHUB_URL'
        requests_post.return_value = MockResponse(201)

        sql_result = [[['status_url']], [['token']]]

        def side_effect(_1, _2, _3):
            return sql_result.pop()

        execute_sql.side_effect = side_effect
        handle_job_update(None, self.update)
        data = '{"state": "%s", "target_url": "GITHUB_URL/dashboard/project/projectid/build/buildid/job/jobid", "description": "InfraBox", "context": "Job: jobname"}' % self.expected_github_status
        requests_post.assert_called_with('status_url',
                                         data=data,
                                         headers={
                                             'Authorization': 'token token',
                                             'User-Agent': 'InfraBox'
                                         },
                                         timeout=5,
                                         verify=False)
예제 #6
0
파일: test.py 프로젝트: troytop/InfraBox
 def test_no_token_found(self, execute_sql, get_env):
     get_env.return_value = 'GITHUB_URL'
     execute_sql.return_value = []
     r = handle_job_update(None, self.event)
     self.assertFalse(r)
예제 #7
0
파일: test.py 프로젝트: troytop/InfraBox
 def test_job_not_found(self, execute_sql):
     execute_sql.return_value = []
     r = handle_job_update(None, self.event)
     self.assertFalse(r)
예제 #8
0
파일: tests.py 프로젝트: Asghan86/infrabox
 def test_no_token_found(self, execute_sql, get_env):
     get_env.return_value = 'GITHUB_URL'
     execute_sql.return_value = []
     handle_job_update(None, self.update)
예제 #9
0
파일: tests.py 프로젝트: Asghan86/infrabox
    def test_gerrit_update(self):
        update = {'data': {'project': {'type': 'gerrit'}}}

        handle_job_update(None, update)