Skip to content

Commit 51b093d

Browse files
committed
fixed output redirection tests
1 parent 1e4aee9 commit 51b093d

2 files changed

Lines changed: 16 additions & 12 deletions

File tree

examples.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,13 @@
1414
examples = []
1515

1616

17+
non_interactive_sleep_factor = 100
18+
19+
1720
def sleep(delay):
1821
'''Make non-interactive examples faster by a factor'''
1922
if __name__ != '__main__':
20-
delay /= 100.
23+
delay /= non_interactive_sleep_factor
2124
time.sleep(delay)
2225

2326

progressbar/bar.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -88,20 +88,24 @@ def __init__(self, redirect_stderr=False, redirect_stdout=False, **kwargs):
8888
self.stdout = sys.stdout
8989
self.stderr = sys.stderr
9090

91-
def _init(self):
92-
if self.redirect_stderr:
93-
self._stderr = sys.stderr
91+
@property
92+
def _stderr(self):
93+
if not hasattr(self, '__stderr'):
94+
self.__stderr = sys.stderr
9495
self.stderr = sys.stderr = six.StringIO()
9596

96-
if self.redirect_stdout:
97-
self._stdout = sys.stdout
97+
return self.__stderr
98+
99+
@property
100+
def _stdout(self):
101+
if not hasattr(self, '__stdout'):
102+
self.__stdout = sys.stdout
98103
self.stdout = sys.stdout = six.StringIO()
99104

105+
return self.__stdout
106+
100107
def update(self, value=None):
101108
if self.redirect_stderr and sys.stderr.tell():
102-
if not hasattr(self, '_stderr'):
103-
self._init()
104-
105109
self.fd.write('\r' + ' ' * self.term_width + '\r')
106110

107111
# Not atomic unfortunately, but writing to the same stream from
@@ -113,9 +117,6 @@ def update(self, value=None):
113117
self._stderr.flush()
114118

115119
if self.redirect_stdout and sys.stdout.tell():
116-
if not hasattr(self, '_stdout'):
117-
self._init()
118-
119120
self.fd.write('\r' + ' ' * self.term_width + '\r')
120121

121122
# Not atomic unfortunately, but writing to the same stream from

0 commit comments

Comments
 (0)