Skip to content

Commit 9a18c29

Browse files
committed
robot.api.logger#console flush output
1 parent 49bfec6 commit 9a18c29

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

src/robot/api/logger.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,3 +102,4 @@ def console(msg, newline=True):
102102
if newline:
103103
msg += '\n'
104104
sys.__stdout__.write(msg)
105+
sys.__stdout__.flush()

utest/api/test_logging_api.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import unittest
2+
import sys
3+
from robot.api.logger import console
4+
5+
class FakeStdout(object):
6+
7+
def __init__(self):
8+
self.flushed = False
9+
10+
def write(self, text):
11+
self.text = text
12+
13+
def flush(self):
14+
self.flushed = True
15+
16+
17+
class TestLoggingApi(unittest.TestCase):
18+
19+
def setUp(self):
20+
self._fake_stdout = FakeStdout()
21+
sys.__stdout__, self._original = self._fake_stdout, sys.__stdout__
22+
23+
def tearDown(self):
24+
sys.__stdout__ = self._original
25+
26+
def test_console_flushes(self):
27+
console('foo', newline=False)
28+
self.assertTrue(self._fake_stdout.flushed)
29+
self.assertEqual(self._fake_stdout.text, 'foo')
30+
31+
32+
if __name__ == '__main__':
33+
unittest.main()

0 commit comments

Comments
 (0)