def test_find(self): """Ensure it returns correct JSON when everything is ok.""" issue_tracker = mock.Mock() monorail_issue = issue.Issue() monorail_issue.id = 100 issue_item = monorail.Issue(monorail_issue) self.mock.get_issue_tracker_for_testcase.return_value = issue_tracker self.mock.get_search_keywords.return_value = ['query'] self.mock.get_similar_issues_url.return_value = 'similarurl' self.mock.get_similar_issues.return_value = [issue_item] issue_tracker.issue_url.return_value = 'issueurl' response = self.app.get('/?testcaseId=%d&filterType=open' % self.testcase.key.id()) self.assertEqual(response.status_int, 200) self.assertEqual(response.json['queryString'], 'query') self.assertEqual(response.json['queryUrl'], 'similarurl') self.assertEqual(len(response.json['items']), 1) self.assertEqual(response.json['items'][0]['issue']['id'], issue_item.id) self.mock.get_issue_tracker_for_testcase.assert_has_calls( [mock.call(mock.ANY)]) self.assertEqual( self.testcase.key.id(), self.mock.get_issue_tracker_for_testcase.call_args[0][0].key.id()) self.mock.get_similar_issues.assert_has_calls( [mock.call(issue_tracker, mock.ANY, only_open=True)]) self.assertEqual(self.testcase.key.id(), self.mock.get_similar_issues.call_args[0][1].key.id())
def test_allowed_because_of_owner_in_original_issue(self): """Ensure it is allowed because the user is the owner of original issue.""" self.bug.merged_into = 5678 self.bug.merged_into_project = 'test-project' self.original_bug.owner = self.email self.mock.get_original_issue.return_value = monorail.Issue( self.original_bug) self._test_bug_access() self.mock.get.return_value = (data_types.Config( relax_testcase_restrictions=False)) self._test_bug_access()
def get_original_issue(self, issue_id): """Get original issue.""" issue_id = int(issue_id) issue = Issue() issue.open = True issue.itm = self._itm # pylint: disable=protected-access issue.id = issue_id if issue_id == 1337: issue.add_cc('*****@*****.**') issue.add_label('Restrict-View-Commit') elif issue_id == 1338: issue.add_cc('*****@*****.**') issue.add_cc('*****@*****.**') elif issue_id == 1340: issue.add_label('reported-2015-01-01') return monorail.Issue(issue)
def create_generic_issue(created_days_ago=28): """Returns a simple issue object for use in tests.""" issue = Issue() issue.cc = [] issue.comment = '' issue.comments = [] issue.components = [] issue.labels = [] issue.open = True issue.owner = '*****@*****.**' issue.status = 'Assigned' issue.id = 1 issue.itm = create_issue_tracker_manager() # Test issue was created 1 week before the current (mocked) time. issue.created = ( test_utils.CURRENT_TIME - datetime.timedelta(days=created_days_ago)) return monorail.Issue(issue)