
If the last field of the review being listed exceeds the width of the console, then using whitespace padding will result in sufficient spacing being added to all other line that will appear as spurious blank lines if they were otherwise less than the console width. Instead of: 1234 master <subject> 5678 master <really-long-subject-that- wraps-to-next-line> Display: 1234 master <subject> 5678 master <really-long-subject-that- wraps-to-next-line> Change-Id: I290f652f803cf3938a1bdb72c20c85969dbb3319
69 lines
2.4 KiB
Python
69 lines
2.4 KiB
Python
# -*- coding: utf8 -*-
|
|
|
|
# Copyright (c) 2014 Hewlett-Packard Development Company, L.P.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
# implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
# Use of io.StringIO in python =< 2.7 requires all strings handled to be
|
|
# unicode. See if StringIO.StringIO is available first
|
|
try:
|
|
import StringIO as io
|
|
except ImportError:
|
|
import io
|
|
import textwrap
|
|
|
|
import mock
|
|
import testtools
|
|
|
|
import git_review
|
|
|
|
|
|
class GitReviewConsole(testtools.TestCase):
|
|
"""Class for testing the console output of git-review."""
|
|
|
|
reviews = [
|
|
{
|
|
'number': '1010101',
|
|
'branch': 'master',
|
|
'subject': 'A simple short subject'
|
|
}, {
|
|
'number': '9877',
|
|
'branch': 'stable/codeword',
|
|
'subject': 'A longer and slightly more wordy subject'
|
|
}, {
|
|
'number': '12345',
|
|
'branch': 'master',
|
|
'subject': 'A ridiculously long subject that can exceed the '
|
|
'normal console width, just need to ensure the '
|
|
'max width is short enough'
|
|
}]
|
|
|
|
@mock.patch('git_review.cmd.query_reviews')
|
|
@mock.patch('git_review.cmd.get_remote_url', mock.MagicMock)
|
|
@mock.patch('git_review.cmd._has_color', False)
|
|
def test_list_reviews_no_blanks(self, mock_query):
|
|
|
|
mock_query.return_value = self.reviews
|
|
with mock.patch('sys.stdout', new_callable=io.StringIO) as output:
|
|
git_review.cmd.list_reviews(None)
|
|
console_output = output.getvalue().split('\n')
|
|
|
|
wrapper = textwrap.TextWrapper(replace_whitespace=False,
|
|
drop_whitespace=False)
|
|
for text in console_output:
|
|
for line in wrapper.wrap(text):
|
|
self.assertEqual(line.isspace(), False,
|
|
"Extra blank lines appearing between reviews"
|
|
"in console output")
|