diff options
author | Ben Murdoch <benm@google.com> | 2011-05-13 16:23:25 +0100 |
---|---|---|
committer | Ben Murdoch <benm@google.com> | 2011-05-16 11:35:02 +0100 |
commit | 65f03d4f644ce73618e5f4f50dd694b26f55ae12 (patch) | |
tree | f478babb801e720de7bfaee23443ffe029f58731 /Tools/Scripts/webkitpy/common/checkout/api_unittest.py | |
parent | 47de4a2fb7262c7ebdb9cd133ad2c54c187454d0 (diff) | |
download | external_webkit-65f03d4f644ce73618e5f4f50dd694b26f55ae12.zip external_webkit-65f03d4f644ce73618e5f4f50dd694b26f55ae12.tar.gz external_webkit-65f03d4f644ce73618e5f4f50dd694b26f55ae12.tar.bz2 |
Merge WebKit at r75993: Initial merge by git.
Change-Id: I602bbdc3974787a3b0450456a30a7868286921c3
Diffstat (limited to 'Tools/Scripts/webkitpy/common/checkout/api_unittest.py')
-rw-r--r-- | Tools/Scripts/webkitpy/common/checkout/api_unittest.py | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/Tools/Scripts/webkitpy/common/checkout/api_unittest.py b/Tools/Scripts/webkitpy/common/checkout/api_unittest.py index 1f97abd..fdf3fba 100644 --- a/Tools/Scripts/webkitpy/common/checkout/api_unittest.py +++ b/Tools/Scripts/webkitpy/common/checkout/api_unittest.py @@ -38,6 +38,7 @@ from webkitpy.common.checkout.api import Checkout from webkitpy.common.checkout.changelog import ChangeLogEntry from webkitpy.common.checkout.scm import detect_scm_system, CommitMessage from webkitpy.common.system.outputcapture import OutputCapture +from webkitpy.common.system.executive import ScriptError from webkitpy.thirdparty.mock import Mock @@ -130,12 +131,35 @@ class CheckoutTest(unittest.TestCase): self.assertEqual(revision, "bar") # contents_at_revision is expected to return a byte array (str) # so we encode our unicode ChangeLog down to a utf-8 stream. - return _changelog1.encode("utf-8") + # The ChangeLog utf-8 decoding should ignore invalid codepoints. + invalid_utf8 = "\255" + return _changelog1.encode("utf-8") + invalid_utf8 scm.contents_at_revision = mock_contents_at_revision checkout = Checkout(scm) entry = checkout._latest_entry_for_changelog_at_revision("foo", "bar") self.assertEqual(entry.contents(), _changelog1entry1) + # FIXME: This tests a hack around our current changed_files handling. + # Right now changelog_entries_for_revision tries to fetch deleted files + # from revisions, resulting in a ScriptError exception. Test that we + # recover from those and still return the other ChangeLog entries. + def test_changelog_entries_for_revision(self): + scm = Mock() + scm.changed_files_for_revision = lambda revision: ['foo/ChangeLog', 'bar/ChangeLog'] + checkout = Checkout(scm) + + def mock_latest_entry_for_changelog_at_revision(path, revision): + if path == "foo/ChangeLog": + return 'foo' + raise ScriptError() + + checkout._latest_entry_for_changelog_at_revision = mock_latest_entry_for_changelog_at_revision + + # Even though fetching one of the entries failed, the other should succeed. + entries = checkout.changelog_entries_for_revision(1) + self.assertEqual(len(entries), 1) + self.assertEqual(entries[0], 'foo') + def test_commit_info_for_revision(self): scm = Mock() scm.committer_email_for_revision = lambda revision: "committer@example.com" |