Example #1
0
    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())
Example #2
0
    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)
Example #4
0
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)