[git_cl] Fix git cl comments json stdout printing

Print "git cl comments" json to stdout when the output file is "-"

Change-Id: I91021317e52019a0d499cccc4f40f062127b300e
Reviewed-on: https://chromium-review.googlesource.com/1228094
Auto-Submit: Leszek Swirski <leszeks@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
changes/94/1228094/2
Leszek Swirski 7 years ago committed by Commit Bot
parent 4aedec01f5
commit 45b20c4140

@ -4714,8 +4714,7 @@ def CMDcomments(parser, args):
dct = c.__dict__.copy()
dct['date'] = dct['date'].strftime('%Y-%m-%d %H:%M:%S.%f')
return dct
with open(options.json_file, 'wb') as f:
json.dump(map(pre_serialize, summary), f)
write_json(options.json_file, map(pre_serialize, summary))
return 0

@ -3235,7 +3235,29 @@ class TestGitCl(TestCase):
self.calls = [
((['git', 'config', 'rietveld.autoupdate'],), CERR1),
((['git', 'config', 'rietveld.server'],), 'codereview.chromium.org'),
] * 2
] * 2 + [
(('write_json', 'output.json', [
{
'date': '2000-03-13 20:49:34.515270',
'message': 'PTAL',
'approval': False,
'disapproval': False,
'sender': 'owner@example.com'
}, {
'date': '2017-03-13 20:49:34.515270',
'message': 'lgtm',
'approval': True,
'disapproval': False,
'sender': 'r@example.com'
}, {
'date': '2017-03-13 21:50:34.515270',
'message': 'not lgtm',
'approval': False,
'disapproval': True,
'sender': 'r2@example.com'
}
]),'')
]
self.mock(git_cl._RietveldChangelistImpl, 'GetIssueProperties', lambda _: {
'messages': [
{'text': 'lgtm', 'date': '2017-03-13 20:49:34.515270',
@ -3266,22 +3288,8 @@ class TestGitCl(TestCase):
]
cl = git_cl.Changelist(codereview='rietveld', issue=1)
self.assertEqual(cl.GetCommentsSummary(), expected_comments_summary)
with git_cl.gclient_utils.temporary_directory() as tempdir:
out_file = os.path.abspath(os.path.join(tempdir, 'out.json'))
self.assertEqual(0, git_cl.main(['comment', '--rietveld', '-i', '10',
'-j', out_file]))
with open(out_file) as f:
read = json.load(f)
self.assertEqual(len(read), 3)
self.assertEqual(read[0], {
'date': '2000-03-13 20:49:34.515270',
'message': 'PTAL',
'approval': False,
'disapproval': False,
'sender': 'owner@example.com'})
self.assertEqual(read[1]['date'], '2017-03-13 20:49:34.515270')
self.assertEqual(read[2]['date'], '2017-03-13 21:50:34.515270')
self.assertEqual(0, git_cl.main(['comment', '--rietveld', '-i', '10',
'-j', 'output.json']))
def test_git_cl_comments_fetch_gerrit(self):
self.mock(sys, 'stdout', StringIO.StringIO())
@ -3355,8 +3363,36 @@ class TestGitCl(TestCase):
'message': 'I removed this because it is bad',
},
]
}),
] * 2
})
] * 2 + [
(('write_json', 'output.json', [
{
u'date': u'2017-03-16 20:00:41.000000',
u'message': (
u'PTAL\n' +
u'\n' +
u'codereview.settings\n' +
u' Base, Line 42: https://chromium-review.googlesource.com/' +
u'c/1/2/codereview.settings#b42\n' +
u' I removed this because it is bad\n'),
u'approval': False,
u'disapproval': False,
u'sender': u'owner@example.com'
}, {
u'date': u'2017-03-17 05:19:37.500000',
u'message': (
u'Patch Set 2: Code-Review+1\n' +
u'\n' +
u'/COMMIT_MSG\n' +
u' PS2, File comment: https://chromium-review.googlesource' +
u'.com/c/1/2//COMMIT_MSG#\n' +
u' Please include a bug link\n'),
u'approval': False,
u'disapproval': False,
u'sender': u'reviewer@example.com'
}
]),'')
]
expected_comments_summary = [
git_cl._CommentSummary(
message=(
@ -3381,38 +3417,8 @@ class TestGitCl(TestCase):
]
cl = git_cl.Changelist(codereview='gerrit', issue=1)
self.assertEqual(cl.GetCommentsSummary(), expected_comments_summary)
with git_cl.gclient_utils.temporary_directory() as tempdir:
out_file = os.path.abspath(os.path.join(tempdir, 'out.json'))
self.assertEqual(0, git_cl.main(['comment', '--gerrit', '-i', '1',
'-j', out_file]))
with open(out_file) as f:
read = json.load(f)
self.assertEqual(len(read), 2)
self.assertEqual(read[0], {
u'date': u'2017-03-16 20:00:41.000000',
u'message': (
u'PTAL\n' +
u'\n' +
u'codereview.settings\n' +
u' Base, Line 42: https://chromium-review.googlesource.com/' +
u'c/1/2/codereview.settings#b42\n' +
u' I removed this because it is bad\n'),
u'approval': False,
u'disapproval': False,
u'sender': u'owner@example.com'})
self.assertEqual(read[1], {
u'date': u'2017-03-17 05:19:37.500000',
u'message': (
u'Patch Set 2: Code-Review+1\n' +
u'\n' +
u'/COMMIT_MSG\n' +
u' PS2, File comment: https://chromium-review.googlesource.com/' +
u'c/1/2//COMMIT_MSG#\n' +
u' Please include a bug link\n'),
u'approval': False,
u'disapproval': False,
u'sender': u'reviewer@example.com'})
self.assertEqual(0, git_cl.main(['comment', '--gerrit', '-i', '1',
'-j', 'output.json']))
def test_get_remote_url_with_mirror(self):
original_os_path_isdir = os.path.isdir

Loading…
Cancel
Save