Revision: 2069
Author: laukpe
Date: Tue Jul 28 04:17:39 2009
Log: Allow disabling automatic console logger more than once (latter calls are simply ignored). Fixes issue 306.
http://code.google.com/p/robotframework/source/detail?r=2069

Modified:
 /trunk/src/robot/output/logger.py
 /trunk/utest/output/test_logger.py

=======================================
--- /trunk/src/robot/output/logger.py   Thu Apr 23 08:49:35 2009
+++ /trunk/src/robot/output/logger.py   Tue Jul 28 04:17:39 2009
@@ -44,10 +44,9 @@
         self._message_cache = None

     def disable_automatic_console_logger(self):
-        if self._console_logger_disabled:
- raise TypeError('Automatic console logging has already been disabled')
-        self._loggers.pop(0)
-        self._console_logger_disabled = True
+        if not self._console_logger_disabled:
+            self._loggers.pop(0)
+            self._console_logger_disabled = True

     def register_logger(self, *loggers):
         for log in loggers:
=======================================
--- /trunk/utest/output/test_logger.py  Mon Mar 30 14:05:02 2009
+++ /trunk/utest/output/test_logger.py  Tue Jul 28 04:17:39 2009
@@ -143,17 +143,16 @@
         assert_equals(len(logger._loggers), 1)
         assert_true(logger._loggers[0].message.im_class is LoggerMock)

-    def test_automatic_logger_can_be_disabled_only_once(self):
+    def test_disabling_automatic_logger_multiple_times_has_no_effect(self):
         logger = _Logger()
         logger.disable_automatic_console_logger()
-        assert_raises(TypeError, logger.disable_automatic_console_logger)
-
-    def test_automatic_logger_can_be_disabled_only_once_2(self):
-        logger = _Logger()
-        logger.register_logger(LoggerMock())
+        assert_equals(len(logger._loggers), 0)
         logger.disable_automatic_console_logger()
+        logger.disable_automatic_console_logger()
+        assert_equals(len(logger._loggers), 0)
         logger.register_logger(LoggerMock())
-        assert_raises(TypeError, logger.disable_automatic_console_logger)
+        logger.disable_automatic_console_logger()
+        assert_equals(len(logger._loggers), 1)

def test_reigstering_console_logger_disables_automatic_console_logger(self):
         logger = _Logger()

Reply via email to