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)
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)
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)
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)
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)
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)
def test_job_not_found(self, execute_sql): execute_sql.return_value = [] r = handle_job_update(None, self.event) self.assertFalse(r)
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)
def test_gerrit_update(self): update = {'data': {'project': {'type': 'gerrit'}}} handle_job_update(None, update)