3 new revisions:
Revision: 0e4147336114
Branch: default
Author: Pekka Klärck
Date: Mon Dec 23 13:29:46 2013 UTC
Log: small utest cleanup
http://code.google.com/p/robotframework/source/detail?r=0e4147336114
Revision: 9da56dde6f48
Branch: default
Author: Pekka Klärck
Date: Mon Dec 23 13:43:57 2013 UTC
Log: TestSuite.run() and LOGGER: utest and fix for registering console
logg...
http://code.google.com/p/robotframework/source/detail?r=9da56dde6f48
Revision: e904d0491d2b
Branch: default
Author: Pekka Klärck
Date: Mon Dec 23 13:49:22 2013 UTC
Log: LOGGER: allow instantiating w/o registering console logger,
updated co...
http://code.google.com/p/robotframework/source/detail?r=e904d0491d2b
==============================================================================
Revision: 0e4147336114
Branch: default
Author: Pekka Klärck
Date: Mon Dec 23 13:29:46 2013 UTC
Log: small utest cleanup
http://code.google.com/p/robotframework/source/detail?r=0e4147336114
Modified:
/utest/running/test_running.py
=======================================
--- /utest/running/test_running.py Mon Dec 23 12:47:26 2013 UTC
+++ /utest/running/test_running.py Mon Dec 23 13:29:46 2013 UTC
@@ -170,27 +170,29 @@
def test_stdout_and_stderr(self):
self._run()
self._assert_output(sys.__stdout__,
- [('T1', 1),
+ [('My Suite', 2), ('My Test', 1),
('1 critical test, 1 passed, 0 failed', 1)])
- self._assert_output(sys.__stderr__, [('hello world', 1)])
+ self._assert_output(sys.__stderr__, [('Hello, world!', 1)])
def test_custom_stdout_and_stderr(self):
- custom_stdout, custom_stderr = StringIO(), StringIO()
- self._run(custom_stdout, custom_stderr)
+ stdout, stderr = StringIO(), StringIO()
+ self._run(stdout, stderr)
self._assert_normal_stdout_stderr_are_empty()
- self._assert_output(custom_stdout, [('T1', 1)])
- self._assert_output(custom_stderr, [('hello world', 1)])
+ self._assert_output(stdout, [('My Suite', 2), ('My Test', 1)])
+ self._assert_output(stderr, [('Hello, world!', 1)])
def test_same_custom_stdout_and_stderr(self):
- custom_output = StringIO()
- self._run(custom_output, custom_output)
+ output = StringIO()
+ self._run(output, output)
self._assert_normal_stdout_stderr_are_empty()
- self._assert_output(custom_output, [('T1', 1), ('hello world', 1)])
+ self._assert_output(output, [('My Suite', 2), ('My Test', 1),
+ ('Hello, world!', 1)])
- def _run(self, stdout=None, stderr=None):
- suite = TestSuite(name='Suite')
- suite.tests.create(name='T1').keywords.create('Log', args=['hello
world', 'WARN'])
- suite.run(stdout=stdout, stderr=stderr)
+ def _run(self, stdout=None, stderr=None, **options):
+ suite = TestSuite(name='My Suite')
+ suite.variables.create('${MESSAGE}', 'Hello, world!')
+ suite.tests.create(name='My Test').keywords.create('Log',
args=['${MESSAGE}', 'WARN'])
+ suite.run(stdout=stdout, stderr=stderr, **options)
def _assert_normal_stdout_stderr_are_empty(self):
self._assert_outputs()
==============================================================================
Revision: 9da56dde6f48
Branch: default
Author: Pekka Klärck
Date: Mon Dec 23 13:43:57 2013 UTC
Log: TestSuite.run() and LOGGER: utest and fix for registering console
logger multiple times
Update issue 1605
Added a test for running tests multiple times with different stdout/stderr
and noticed that it didn't work. The problem as in LOGGER that didn't
handle reigstering/unregistering console loggers too well.
http://code.google.com/p/robotframework/source/detail?r=9da56dde6f48
Modified:
/src/robot/output/logger.py
/utest/running/test_running.py
=======================================
--- /src/robot/output/logger.py Thu Jun 6 14:00:44 2013 UTC
+++ /src/robot/output/logger.py Mon Dec 23 13:43:57 2013 UTC
@@ -37,18 +37,13 @@
def __init__(self):
self._loggers = LoggerCollection()
self._message_cache = []
- self._register_console_logger()
- self._console_logger_disabled = False
+ self._console_logger = None
self._started_keywords = 0
+ self.register_console_logger()
def disable_message_cache(self):
self._message_cache = None
- def disable_automatic_console_logger(self):
- if not self._console_logger_disabled:
- self._console_logger_disabled = True
- return self._loggers.remove_first_regular_logger()
-
def register_logger(self, *loggers):
for log in loggers:
logger = self._loggers.register_regular_logger(log)
@@ -69,13 +64,23 @@
def register_console_logger(self, width=78, colors='AUTO',
markers='AUTO',
stdout=None, stderr=None):
- self.disable_automatic_console_logger()
- self._register_console_logger(width, colors, markers, stdout,
stderr)
+ logger = CommandLineMonitor(width, colors, markers, stdout, stderr)
+ if self._console_logger:
+ self._loggers.unregister_logger(self._console_logger)
+ self._console_logger = logger
+ self._loggers.register_regular_logger(logger)
- def _register_console_logger(self, width=78, colors='AUTO',
markers='AUTO',
- stdout=None, stderr=None):
- monitor = CommandLineMonitor(width, colors, markers, stdout,
stderr)
- self._loggers.register_regular_logger(monitor)
+ def unregister_console_logger(self):
+ if not self._console_logger:
+ return None
+ logger = self._console_logger
+ self._loggers.unregister_logger(logger)
+ self._console_logger = None
+ return logger
+
+ # TODO: Remove in RF 2.9. Not used outside utests since 2.8.4 but may
+ # be used by external tools. Need to check that before removal.
+ disable_automatic_console_logger = unregister_console_logger
def register_file_logger(self, path=None, level='INFO'):
if not path:
@@ -175,6 +180,7 @@
self._context_changing_loggers.append(_LoggerProxy(logger))
return self._context_changing_loggers[-1]
+ # TODO: Remove in RF 2.9. Doesn't seem to be used anywhere since 2.8.4.
def remove_first_regular_logger(self):
return self._regular_loggers.pop(0)
=======================================
--- /utest/running/test_running.py Mon Dec 23 13:29:46 2013 UTC
+++ /utest/running/test_running.py Mon Dec 23 13:43:57 2013 UTC
@@ -188,6 +188,23 @@
self._assert_output(output, [('My Suite', 2), ('My Test', 1),
('Hello, world!', 1)])
+ def test_run_multiple_times_with_different_stdout_and_stderr(self):
+ stdout, stderr = StringIO(), StringIO()
+ self._run(stdout, stderr)
+ self._assert_normal_stdout_stderr_are_empty()
+ self._assert_output(stdout, [('My Suite', 2), ('My Test', 1)])
+ self._assert_output(stderr, [('Hello, world!', 1)])
+ stdout.close(); stderr.close()
+ output = StringIO()
+ self._run(output, output, variable='MESSAGE:Hi, again!')
+ self._assert_normal_stdout_stderr_are_empty()
+ self._assert_output(output, [('My Suite', 2), ('My Test', 1),
+ ('Hi, again!', 1), ('Hello, world!',
0)])
+ output.close()
+ self._run(variable='MESSAGE:Last hi!')
+ self._assert_output(sys.__stdout__, [('My Suite', 2), ('My Test',
1)])
+ self._assert_output(sys.__stderr__, [('Last hi!', 1), ('Hello,
world!', 0)])
+
def _run(self, stdout=None, stderr=None, **options):
suite = TestSuite(name='My Suite')
suite.variables.create('${MESSAGE}', 'Hello, world!')
@@ -197,5 +214,6 @@
def _assert_normal_stdout_stderr_are_empty(self):
self._assert_outputs()
+
if __name__ == '__main__':
unittest.main()
==============================================================================
Revision: e904d0491d2b
Branch: default
Author: Pekka Klärck
Date: Mon Dec 23 13:49:22 2013 UTC
Log: LOGGER: allow instantiating w/o registering console logger,
updated console logger disabling tests to use new unregister_console_logger
method
http://code.google.com/p/robotframework/source/detail?r=e904d0491d2b
Modified:
/src/robot/output/logger.py
/utest/output/test_logger.py
=======================================
--- /src/robot/output/logger.py Mon Dec 23 13:43:57 2013 UTC
+++ /src/robot/output/logger.py Mon Dec 23 13:49:22 2013 UTC
@@ -34,12 +34,13 @@
to get errors/warnings into console is using 'register_console_logger'.
"""
- def __init__(self):
+ def __init__(self, register_console_logger=True):
self._loggers = LoggerCollection()
self._message_cache = []
self._console_logger = None
self._started_keywords = 0
- self.register_console_logger()
+ if register_console_logger:
+ self.register_console_logger()
def disable_message_cache(self):
self._message_cache = None
=======================================
--- /utest/output/test_logger.py Fri Feb 24 13:50:50 2012 UTC
+++ /utest/output/test_logger.py Mon Dec 23 13:49:22 2013 UTC
@@ -38,8 +38,7 @@
class TestLogger(unittest.TestCase):
def setUp(self):
- self.logger = Logger()
- self.logger.disable_automatic_console_logger()
+ self.logger = Logger(register_console_logger=False)
def test_write_to_one_logger(self):
logger = LoggerMock(('Hello, world!', 'INFO'))
@@ -143,26 +142,26 @@
def test_automatic_console_logger_can_be_disabled(self):
logger = Logger()
- logger.disable_automatic_console_logger()
+ logger.unregister_console_logger()
assert_equals(logger._loggers.all_loggers(), [])
def
test_automatic_console_logger_can_be_disabled_after_registering_logger(self):
logger = Logger()
mock = LoggerMock()
logger.register_logger(mock)
- logger.disable_automatic_console_logger()
+ logger.unregister_console_logger()
self._number_of_registered_loggers_should_be(1, logger)
assert_true(logger._loggers.all_loggers()[0].message.im_class is
LoggerMock)
def test_disabling_automatic_logger_multiple_times_has_no_effect(self):
logger = Logger()
- logger.disable_automatic_console_logger()
+ logger.unregister_console_logger()
self._number_of_registered_loggers_should_be(0, logger)
- logger.disable_automatic_console_logger()
- logger.disable_automatic_console_logger()
+ logger.unregister_console_logger()
+ logger.unregister_console_logger()
self._number_of_registered_loggers_should_be(0, logger)
logger.register_logger(LoggerMock())
- logger.disable_automatic_console_logger()
+ logger.unregister_console_logger()
self._number_of_registered_loggers_should_be(1, logger)
def
test_registering_console_logger_disables_automatic_console_logger(self):
--
---
You received this message because you are subscribed to the Google Groups "robotframework-commit" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to robotframework-commit+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.