Revert "git-cl: Fix some python3 compatibility errors."
This reverts commit c87ed60623e4f057620552a9dc754c9c9f1e02e7.
Reason for revert:
Causes a regressions for CL descriptions on Windows
Original change's description:
> git-cl: Fix some python3 compatibility errors.
>
> Also, fix bug in git cl status where the 'updated' field was used to compare messages, even though
> it doesn't exist (see [1]). This CL modifies it to use 'date', which does exist.
>
> [1] https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#change-message-info
>
> Bug: 1002209
> Change-Id: I5a5e1193b8502c3ad35d94808ea178cad7f44ac6
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1891259
> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
> Reviewed-by: Anthony Polito <apolito@google.com>
TBR=ehmaldonado@chromium.org,apolito@google.com
# Not skipping CQ checks because original CL landed > 1 day ago.
Bug: 1002209
Change-Id: I004f202b12c6b99cb6b24cb12a14fba7898569e2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1898547
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
diff --git a/tests/git_cl_test.py b/tests/git_cl_test.py
index b95a3ee..e1b2266 100755
--- a/tests/git_cl_test.py
+++ b/tests/git_cl_test.py
@@ -10,9 +10,11 @@
import logging
import os
import shutil
+import StringIO
import sys
import tempfile
import unittest
+import urlparse
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
@@ -29,11 +31,6 @@
import git_footers
import subprocess2
-if sys.version_info.major == 2:
- from StringIO import StringIO
-else:
- from io import StringIO
-
def callError(code=1, cmd='', cwd='', stdout='', stderr=''):
return subprocess2.CalledProcessError(code, cmd, cwd, stdout, stderr)
@@ -574,13 +571,13 @@
def test_report_no_problems(self):
self.test_analysis_nothing()
- self.mock(sys, 'stdout', StringIO())
+ self.mock(sys, 'stdout', StringIO.StringIO())
self.assertFalse(self.c.find_and_report_problems())
self.assertEqual(sys.stdout.getvalue(), '')
def test_report(self):
self.test_analysis()
- self.mock(sys, 'stdout', StringIO())
+ self.mock(sys, 'stdout', StringIO.StringIO())
self.mock(git_cl.gerrit_util.CookiesAuthenticator, 'get_gitcookies_path',
classmethod(lambda _: '~/.gitcookies'))
self.assertTrue(self.c.find_and_report_problems())
@@ -716,7 +713,7 @@
self.assertTrue(git_cl.ask_for_explicit_yes('prompt'))
def test_LoadCodereviewSettingsFromFile_gerrit(self):
- codereview_file = StringIO('GERRIT_HOST: true')
+ codereview_file = StringIO.StringIO('GERRIT_HOST: true')
self.calls = [
((['git', 'config', '--unset-all', 'rietveld.cc'],), CERR1),
((['git', 'config', '--unset-all', 'rietveld.tree-status-url'],), CERR1),
@@ -1243,7 +1240,7 @@
reviewers = reviewers or []
cc = cc or []
- self.mock(git_cl.sys, 'stdout', StringIO())
+ self.mock(git_cl.sys, 'stdout', StringIO.StringIO())
self.mock(git_cl.gerrit_util, 'CookiesAuthenticator',
CookiesAuthenticatorMockFactory(
same_auth=('git-owner.example.com', '', 'pass')))
@@ -1357,7 +1354,7 @@
change_id='I123456789')
def test_gerrit_patchset_title_special_chars(self):
- self.mock(git_cl.sys, 'stdout', StringIO())
+ self.mock(git_cl.sys, 'stdout', StringIO.StringIO())
self._run_gerrit_upload_test(
['-f', '-t', 'We\'ll escape ^_ ^ special chars...@{u}'],
'desc\n\nBUG=\n\nChange-Id: I123456789',
@@ -1523,7 +1520,7 @@
git_cl.sys.stdout.getvalue())
def test_upload_branch_deps(self):
- self.mock(git_cl.sys, 'stdout', StringIO())
+ self.mock(git_cl.sys, 'stdout', StringIO.StringIO())
def mock_run_git(*args, **_kwargs):
if args[0] == ['for-each-ref',
'--format=%(refname:short) %(upstream:short)',
@@ -1781,7 +1778,7 @@
detect_gerrit_server=False,
actual_codereview=None,
codereview_in_url=False):
- self.mock(git_cl.sys, 'stdout', StringIO())
+ self.mock(git_cl.sys, 'stdout', StringIO.StringIO())
self.mock(git_cl, 'IsGitVersionAtLeast', lambda *args: True)
if new_branch:
@@ -1975,13 +1972,13 @@
def test_checkout_not_found(self):
"""Tests git cl checkout <issue>."""
- self.mock(git_cl.sys, 'stdout', StringIO())
+ self.mock(git_cl.sys, 'stdout', StringIO.StringIO())
self.calls = self._checkout_calls()
self.assertEqual(1, git_cl.main(['checkout', '99999']))
def test_checkout_no_branch_issues(self):
"""Tests git cl checkout <issue>."""
- self.mock(git_cl.sys, 'stdout', StringIO())
+ self.mock(git_cl.sys, 'stdout', StringIO.StringIO())
self.calls = [
((['git', 'config', '--local', '--get-regexp',
'branch\\..*\\.gerritissue'], ), CERR1),
@@ -2014,7 +2011,7 @@
self.assertIsNone(cl.EnsureAuthenticated(force=False))
def test_gerrit_ensure_authenticated_conflict(self):
- self.mock(git_cl.sys, 'stdout', StringIO())
+ self.mock(git_cl.sys, 'stdout', StringIO.StringIO())
cl = self._test_gerrit_ensure_authenticated_common(auth={
'chromium.googlesource.com':
('git-one.example.com', None, 'secret1'),
@@ -2100,7 +2097,7 @@
self.assertEqual(0, git_cl.main(['set-commit']))
def test_description_display(self):
- out = StringIO()
+ out = StringIO.StringIO()
self.mock(git_cl.sys, 'stdout', out)
self.mock(git_cl, 'Changelist', ChangelistMock)
@@ -2110,7 +2107,7 @@
self.assertEqual('foo\n', out.getvalue())
def test_StatusFieldOverrideIssueMissingArgs(self):
- out = StringIO()
+ out = StringIO.StringIO()
self.mock(git_cl.sys, 'stderr', out)
try:
@@ -2119,7 +2116,7 @@
self.assertEqual(ex.code, 2)
self.assertRegexpMatches(out.getvalue(), r'--field must be specified')
- out = StringIO()
+ out = StringIO.StringIO()
self.mock(git_cl.sys, 'stderr', out)
try:
@@ -2129,7 +2126,7 @@
self.assertRegexpMatches(out.getvalue(), r'--field must be specified')
def test_StatusFieldOverrideIssue(self):
- out = StringIO()
+ out = StringIO.StringIO()
self.mock(git_cl.sys, 'stdout', out)
def assertIssue(cl_self, *_args):
@@ -2154,7 +2151,7 @@
git_cl.main(['set-close', '--issue', '1', '--gerrit']), 0)
def test_description(self):
- out = StringIO()
+ out = StringIO.StringIO()
self.mock(git_cl.sys, 'stdout', out)
self.calls = [
((['git', 'symbolic-ref', 'HEAD'],), 'feature'),
@@ -2178,11 +2175,11 @@
self.assertEqual('foobar\n', out.getvalue())
def test_description_set_raw(self):
- out = StringIO()
+ out = StringIO.StringIO()
self.mock(git_cl.sys, 'stdout', out)
self.mock(git_cl, 'Changelist', ChangelistMock)
- self.mock(git_cl.sys, 'stdin', StringIO('hihi'))
+ self.mock(git_cl.sys, 'stdin', StringIO.StringIO('hihi'))
self.assertEqual(0, git_cl.main(['description', '-n', 'hihi']))
self.assertEqual('hihi', ChangelistMock.desc)
@@ -2205,7 +2202,7 @@
def UpdateDescriptionRemote(_, desc, force=False):
self.assertEqual(desc, 'Some.\n\nChange-Id: xxx\nBug: 123')
- self.mock(git_cl.sys, 'stdout', StringIO())
+ self.mock(git_cl.sys, 'stdout', StringIO.StringIO())
self.mock(git_cl.Changelist, 'GetDescription',
lambda *args: current_desc)
self.mock(git_cl.Changelist, 'UpdateDescriptionRemote',
@@ -2235,7 +2232,7 @@
desc)
return desc
- self.mock(git_cl.sys, 'stdout', StringIO())
+ self.mock(git_cl.sys, 'stdout', StringIO.StringIO())
self.mock(git_cl.Changelist, 'GetDescription',
lambda *args: current_desc)
self.mock(git_cl.gclient_utils, 'RunEditor', RunEditor)
@@ -2250,17 +2247,17 @@
self.assertEqual(0, git_cl.main(['description', '--gerrit']))
def test_description_set_stdin(self):
- out = StringIO()
+ out = StringIO.StringIO()
self.mock(git_cl.sys, 'stdout', out)
self.mock(git_cl, 'Changelist', ChangelistMock)
- self.mock(git_cl.sys, 'stdin', StringIO('hi \r\n\t there\n\nman'))
+ self.mock(git_cl.sys, 'stdin', StringIO.StringIO('hi \r\n\t there\n\nman'))
self.assertEqual(0, git_cl.main(['description', '-n', '-']))
self.assertEqual('hi\n\t there\n\nman', ChangelistMock.desc)
def test_archive(self):
- self.mock(git_cl.sys, 'stdout', StringIO())
+ self.mock(git_cl.sys, 'stdout', StringIO.StringIO())
self.calls = [
((['git', 'for-each-ref', '--format=%(refname)', 'refs/heads'],),
@@ -2279,7 +2276,7 @@
self.assertEqual(0, git_cl.main(['archive', '-f']))
def test_archive_current_branch_fails(self):
- self.mock(git_cl.sys, 'stdout', StringIO())
+ self.mock(git_cl.sys, 'stdout', StringIO.StringIO())
self.calls = [
((['git', 'for-each-ref', '--format=%(refname)', 'refs/heads'],),
'refs/heads/master'),
@@ -2293,7 +2290,7 @@
self.assertEqual(1, git_cl.main(['archive', '-f']))
def test_archive_dry_run(self):
- self.mock(git_cl.sys, 'stdout', StringIO())
+ self.mock(git_cl.sys, 'stdout', StringIO.StringIO())
self.calls = [
((['git', 'for-each-ref', '--format=%(refname)', 'refs/heads'],),
@@ -2310,7 +2307,7 @@
self.assertEqual(0, git_cl.main(['archive', '-f', '--dry-run']))
def test_archive_no_tags(self):
- self.mock(git_cl.sys, 'stdout', StringIO())
+ self.mock(git_cl.sys, 'stdout', StringIO.StringIO())
self.calls = [
((['git', 'for-each-ref', '--format=%(refname)', 'refs/heads'],),
@@ -2328,7 +2325,7 @@
self.assertEqual(0, git_cl.main(['archive', '-f', '--notags']))
def test_cmd_issue_erase_existing(self):
- out = StringIO()
+ out = StringIO.StringIO()
self.mock(git_cl.sys, 'stdout', out)
self.calls = [
((['git', 'symbolic-ref', 'HEAD'],), 'feature'),
@@ -2345,7 +2342,7 @@
self.assertEqual(0, git_cl.main(['issue', '0']))
def test_cmd_issue_erase_existing_with_change_id(self):
- out = StringIO()
+ out = StringIO.StringIO()
self.mock(git_cl.sys, 'stdout', out)
self.mock(git_cl.Changelist, 'GetDescription',
lambda _: 'This is a description\n\nChange-Id: Ideadbeef')
@@ -2366,7 +2363,7 @@
self.assertEqual(0, git_cl.main(['issue', '0']))
def test_cmd_issue_json(self):
- out = StringIO()
+ out = StringIO.StringIO()
self.mock(git_cl.sys, 'stdout', out)
self.calls = [
((['git', 'symbolic-ref', 'HEAD'],), 'feature'),
@@ -2381,7 +2378,7 @@
self.assertEqual(0, git_cl.main(['issue', '--json', 'output.json']))
def _common_GerritCommitMsgHookCheck(self):
- self.mock(git_cl.sys, 'stdout', StringIO())
+ self.mock(git_cl.sys, 'stdout', StringIO.StringIO())
self.mock(git_cl.os.path, 'abspath',
lambda path: self._mocked_call(['abspath', path]))
self.mock(git_cl.os.path, 'exists',
@@ -2444,7 +2441,7 @@
'url': 'https://git.googlesource.com/test/+/deadbeef'}],
}
cl.SubmitIssue = lambda wait_for_merge: None
- out = StringIO()
+ out = StringIO.StringIO()
self.mock(sys, 'stdout', out)
self.assertEqual(0, cl.CMDLand(force=True,
bypass_hooks=True,
@@ -2540,7 +2537,7 @@
}
self.mock(git_cl.gerrit_util, 'CookiesAuthenticator',
CookiesAuthenticatorMock)
- self.mock(sys, 'stdout', StringIO())
+ self.mock(sys, 'stdout', StringIO.StringIO())
git_cl._GitCookiesChecker().print_current_creds(include_netrc=True)
self.assertEqual(list(sys.stdout.getvalue().splitlines()), [
' Host\t User\t Which file',
@@ -2549,8 +2546,7 @@
' host.googlesource.com\t user\t.gitcookies',
' host2.googlesource.com\tuser3\t .netrc',
])
- sys.stdout.seek(0)
- sys.stdout.truncate(0)
+ sys.stdout.buf = ''
git_cl._GitCookiesChecker().print_current_creds(include_netrc=False)
self.assertEqual(list(sys.stdout.getvalue().splitlines()), [
' Host\tUser\t Which file',
@@ -2570,7 +2566,7 @@
# git cl also checks for existence other files not relevant to this test.
return None
self.mock(os.path, 'exists', exists_mock)
- self.mock(sys, 'stdout', StringIO())
+ self.mock(sys, 'stdout', StringIO.StringIO())
def test_creds_check_gitcookies_not_configured(self):
self._common_creds_check_mocks()
@@ -2635,7 +2631,7 @@
'-a', 'msg']))
def test_git_cl_comments_fetch_gerrit(self):
- self.mock(sys, 'stdout', StringIO())
+ self.mock(sys, 'stdout', StringIO.StringIO())
self.calls = [
((['git', 'config', 'branch.foo.gerritserver'],), ''),
((['git', 'config', 'branch.foo.merge'],), ''),
@@ -2786,7 +2782,7 @@
# git cl comments also fetches robot comments (which are considered a type
# of autogenerated comment), and unlike other types of comments, only robot
# comments from the latest patchset are shown.
- self.mock(sys, 'stdout', StringIO())
+ self.mock(sys, 'stdout', StringIO.StringIO())
self.calls = [
((['git', 'config', 'branch.foo.gerritserver'],), ''),
((['git', 'config', 'branch.foo.merge'],), ''),
@@ -3041,7 +3037,7 @@
def setUp(self):
super(CMDTestCaseBase, self).setUp()
- mock.patch('git_cl.sys.stdout', StringIO()).start()
+ mock.patch('git_cl.sys.stdout', StringIO.StringIO()).start()
mock.patch('git_cl.uuid.uuid4', return_value='uuid4').start()
mock.patch('git_cl.Changelist.GetIssue', return_value=123456).start()
mock.patch('git_cl.Changelist.GetCodereviewServer',