def test_bug_id_for_revision(self): checkout = self._make_checkout() checkout._scm.committer_email_for_revision = lambda revision: "*****@*****.**" checkout.changelog_entries_for_revision = lambda revision, changed_files=None: [ ChangeLogEntry(_changelog1entry1) ] self.assertEqual(checkout.bug_id_for_revision(4), 36629)
def _entry_with_reviewer(self, reviewer_line): return ChangeLogEntry('''2009-08-19 Eric Seidel <*****@*****.**> REVIEW_LINE * Scripts/bugzilla-tool: '''.replace("REVIEW_LINE", reviewer_line))
def test_bug_id_for_this_commit(self): scm = Mock() checkout = Checkout(scm) checkout.commit_message_for_this_commit = lambda git_commit, changed_files=None: CommitMessage( ChangeLogEntry(_changelog1entry1).contents().splitlines()) self.assertEqual(checkout.bug_id_for_this_commit(git_commit=None), 36629)
def _entry_with_author(self, author_text): return ChangeLogEntry('''2009-08-19 AUTHOR_TEXT Reviewed by Ryosuke Niwa * Scripts/bugzilla-tool: '''.replace("AUTHOR_TEXT", author_text))
def test_bug_id_for_revision(self): scm = Mock() scm.committer_email_for_revision = lambda revision: "*****@*****.**" checkout = Checkout(scm) checkout.changelog_entries_for_revision = lambda revision: [ ChangeLogEntry(_changelog1entry1) ] self.assertEqual(checkout.bug_id_for_revision(4), 36629)
def _assert_fuzzy_reviewer_match(self, reviewer_text, expected_text_list, expected_contributors): unused, reviewer_text_list = ChangeLogEntry._parse_reviewer_text( reviewer_text) self.assertEqual(reviewer_text_list, expected_text_list) self.assertEqual( self._entry_with_reviewer(reviewer_text).reviewers(), self._contributors(expected_contributors))
def _assert_parse_reviewer_text_and_list(self, text, expected_reviewer_text, expected_reviewer_text_list=None): reviewer_text, reviewer_text_list = ChangeLogEntry._parse_reviewer_text( text) self.assertEqual(reviewer_text, expected_reviewer_text) if expected_reviewer_text_list: self.assertEqual(reviewer_text_list, expected_reviewer_text_list) else: self.assertEqual(reviewer_text_list, [expected_reviewer_text])
def test_is_touched_files_text_clean(self): tests = [ ('''2013-01-30 Timothy Loh <*****@*****.**> Make ChangeLogEntry detect annotations by prepare-ChangeLog (Added/Removed/Copied from/Renamed from) as clean. https://bugs.webkit.org/show_bug.cgi?id=108433 * Scripts/webkitpy/common/checkout/changelog.py: (ChangeLogEntry.is_touched_files_text_clean): * Scripts/webkitpy/common/checkout/changelog_unittest.py: (test_is_touched_files_text_clean): ''', True), ('''2013-01-10 Alan Cutter <*****@*****.**> Perform some file operations (automatically added comments). * Scripts/webkitpy/tool/bot/testdata/webkit_sheriff_0.js: Removed. * EWSTools/build-vm.sh: Renamed from Tools/EWSTools/cold-boot.sh. ''', True), ('''2013-01-30 Timothy Loh <*****@*****.**> Add unit test (manually added comment). * Scripts/webkitpy/common/checkout/changelog_unittest.py: (test_is_touched_files_text_clean): Added. ''', False), ('''2013-01-30 Timothy Loh <*****@*****.**> Add file (manually added comment). * Scripts/webkitpy/common/checkout/super_changelog.py: Copied from the internet. ''', False), ] for contents, expected_result in tests: entry = ChangeLogEntry(contents) self.assertEqual(entry.is_touched_files_text_clean(), expected_result)
def test_commit_info_for_revision(self): scm = Mock() scm.committer_email_for_revision = lambda revision: "*****@*****.**" checkout = Checkout(scm) checkout.changelog_entries_for_revision = lambda revision: [ ChangeLogEntry(_changelog1entry1) ] commitinfo = checkout.commit_info_for_revision(4) self.assertEqual(commitinfo.bug_id(), 36629) self.assertEqual(commitinfo.author_name(), u"Tor Arne Vestb\u00f8") self.assertEqual(commitinfo.author_email(), "*****@*****.**") self.assertEqual(commitinfo.reviewer_text(), None) self.assertEqual(commitinfo.reviewer(), None) self.assertEqual(commitinfo.committer_email(), "*****@*****.**") self.assertEqual(commitinfo.committer(), None) checkout.changelog_entries_for_revision = lambda revision: [] self.assertEqual(checkout.commit_info_for_revision(1), None)
def test_commit_info_for_revision(self): checkout = self._make_checkout() checkout._scm.changed_files_for_revision = lambda revision: [ 'path/to/file', 'another/file' ] checkout._scm.committer_email_for_revision = lambda revision, changed_files=None: "*****@*****.**" checkout.changelog_entries_for_revision = lambda revision, changed_files=None: [ ChangeLogEntry(_changelog1entry1) ] commitinfo = checkout.commit_info_for_revision(4) self.assertEqual(commitinfo.bug_id(), 36629) self.assertEqual( commitinfo.bug_description(), "Unreviewed build fix to un-break webkit-patch land.") self.assertEqual(commitinfo.author_name(), u"Fr\u00e9d\u00e9ric Wang") self.assertEqual(commitinfo.author_email(), "*****@*****.**") self.assertIsNone(commitinfo.reviewer_text()) self.assertIsNone(commitinfo.reviewer()) self.assertEqual(commitinfo.committer_email(), "*****@*****.**") self.assertIsNone(commitinfo.committer()) self.assertEqual( commitinfo.to_json(), { 'bug_id': 36629, 'author_email': '*****@*****.**', 'changed_files': [ 'path/to/file', 'another/file', ], 'reviewer_text': None, 'author_name': u'Fr\u00e9d\u00e9ric Wang', 'bug_description': 'Unreviewed build fix to un-break webkit-patch land.', }) checkout.changelog_entries_for_revision = lambda revision, changed_files=None: [ ] self.assertIsNone(checkout.commit_info_for_revision(1))
def mock_changelog_entries_for_revision(revision, changed_files=None): if revision == 27: return [] if revision % 2 == 0: return [ChangeLogEntry(_changelog1entry1)] return [ChangeLogEntry(_changelog1entry2)]
def test_bug_id_for_this_commit(self): checkout = self._make_checkout() checkout.commit_message_for_this_commit = lambda git_commit, changed_files=None, return_stderr=False: CommitMessage( ChangeLogEntry(_changelog1entry1).contents().splitlines()) self.assertEqual(checkout.bug_id_for_this_commit(git_commit=None), 36629)
def mock_changelog_entries_for_revision(revision): if revision % 2 == 0: return [ChangeLogEntry(_changelog1entry1)] return [ChangeLogEntry(_changelog1entry2)]
def _test_review_text(self, step, text, expected): contents = self._boilerplate_entry.replace("REVIEW_LINE", text) entry = ChangeLogEntry(contents) self.assertEqual(step._has_valid_reviewer(entry), expected)
def _assert_fuzzy_radar_match(self, radar_text, expected_radar_id): parsed_radar_id = ChangeLogEntry._parse_radar_id(radar_text) self.assertEqual(parsed_radar_id, expected_radar_id)
def _assert_parse_reviewer_text_list(self, text, expected_reviewer_text_list): reviewer_text, reviewer_text_list = ChangeLogEntry._parse_reviewer_text( text) self.assertEqual(reviewer_text_list, expected_reviewer_text_list)