Skip to content

Commit 0eae5ef

Browse files
committed
Show 0% instead of N/A% when percentage is 0.
1 parent 8ba5064 commit 0eae5ef

2 files changed

Lines changed: 11 additions & 9 deletions

File tree

progressbar/widgets.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -634,14 +634,16 @@ def __init__(self, format='%(percentage)3d%%', na='N/A%%', **kwargs):
634634
WidgetBase.__init__(self, format=format, **kwargs)
635635

636636
def __call__(self, progress, data, format=None):
637-
return FormatWidgetMixin.__call__(self, progress, data, self.get_format(progress, data))
637+
return FormatWidgetMixin.__call__(self, progress, data,
638+
self.get_format(progress, data))
638639

639-
def get_format(self, progress, data):
640+
def get_format(self, progress, data, format=None):
640641
# If percentage is not available, display N/A%
641-
if 'percentage' in data and not data['percentage']:
642+
if ('percentage' in data and not data['percentage'] and
643+
data['percentage'] != 0):
642644
return self.na
643645

644-
return self.format
646+
return format or self.format
645647

646648

647649
class SimpleProgress(FormatWidgetMixin, WidgetBase):

tests/test_monitor_progress.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ def test_list_example(testdir):
6565
if l.strip()]
6666
pprint.pprint(result.stderr.lines, width=70)
6767
result.stderr.fnmatch_lines([
68-
'N/A% (0 of 9) | | Elapsed Time: ?:00:00 ETA: --:--:--',
68+
' 0% (0 of 9) | | Elapsed Time: ?:00:00 ETA: --:--:--',
6969
' 11% (1 of 9) |# | Elapsed Time: ?:00:01 ETA: ?:00:08',
7070
' 22% (2 of 9) |## | Elapsed Time: ?:00:02 ETA: ?:00:07',
7171
' 33% (3 of 9) |#### | Elapsed Time: ?:00:03 ETA: ?:00:06',
@@ -117,7 +117,7 @@ def test_rapid_updates(testdir):
117117
result.stderr.lines = [l for l in result.stderr.lines if l.strip()]
118118
pprint.pprint(result.stderr.lines, width=70)
119119
result.stderr.fnmatch_lines([
120-
'N/A% (0 of 10) | | Elapsed Time: ?:00:00 ETA: --:--:--',
120+
' 0% (0 of 10) | | Elapsed Time: ?:00:00 ETA: --:--:--',
121121
' 10% (1 of 10) | | Elapsed Time: ?:00:01 ETA: ?:00:09',
122122
' 20% (2 of 10) |# | Elapsed Time: ?:00:02 ETA: ?:00:08',
123123
' 30% (3 of 10) |# | Elapsed Time: ?:00:03 ETA: ?:00:07',
@@ -139,7 +139,7 @@ def test_non_timed(testdir):
139139
result.stderr.lines = [l for l in result.stderr.lines if l.strip()]
140140
pprint.pprint(result.stderr.lines, width=70)
141141
result.stderr.fnmatch_lines([
142-
'N/A%| |',
142+
' 0%| |',
143143
' 20%|########## |',
144144
' 40%|##################### |',
145145
' 60%|################################ |',
@@ -156,7 +156,7 @@ def test_line_breaks(testdir):
156156
)))
157157
pprint.pprint(result.stderr.str(), width=70)
158158
assert result.stderr.str() == u'\n'.join((
159-
u'N/A%| |',
159+
u' 0%| |',
160160
u' 20%|########## |',
161161
u' 40%|##################### |',
162162
u' 60%|################################ |',
@@ -175,7 +175,7 @@ def test_no_line_breaks(testdir):
175175
pprint.pprint(result.stderr.lines, width=70)
176176
assert result.stderr.lines == [
177177
u'',
178-
u'N/A%| |',
178+
u' 0%| |',
179179
u' 20%|########## |',
180180
u' 40%|##################### |',
181181
u' 60%|################################ |',

0 commit comments

Comments
 (0)