[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>
diff --git a/tests/git_cl_test.py b/tests/git_cl_test.py
index 7addf2d..cb20c19 100755
--- a/tests/git_cl_test.py
+++ b/tests/git_cl_test.py
@@ -3235,7 +3235,29 @@
     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 @@
     ]
     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 @@
             '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 @@
     ]
     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