4 new revisions:

Revision: 224c5cdae6c5
Author:   Pekka Klärck
Date:     Sun Jun 19 09:17:06 2011
Log:      cleanup
http://code.google.com/p/robotframework/source/detail?r=224c5cdae6c5

Revision: 17fc9fc7b755
Author:   Pekka Klärck
Date:     Sun Jun 19 09:18:07 2011
Log: missing import after module split. would be a good idea to run unit te...
http://code.google.com/p/robotframework/source/detail?r=17fc9fc7b755

Revision: bd52ee1267e0
Author:   Pekka Klärck
Date:     Sun Jun 19 09:19:01 2011
Log: Renamed test module to match tested module. Also renamed tested class ...
http://code.google.com/p/robotframework/source/detail?r=bd52ee1267e0

Revision: c12494a4c54b
Author:   Pekka Klärck
Date:     Sun Jun 19 09:23:36 2011
Log:      better place
http://code.google.com/p/robotframework/source/detail?r=c12494a4c54b

==============================================================================
Revision: 224c5cdae6c5
Author:   Pekka Klärck
Date:     Sun Jun 19 09:17:06 2011
Log:      cleanup
http://code.google.com/p/robotframework/source/detail?r=224c5cdae6c5

Modified:
 /src/robot/output/output.py

=======================================
--- /src/robot/output/output.py Sun Jun 19 05:51:50 2011
+++ /src/robot/output/output.py Sun Jun 19 09:17:06 2011
@@ -13,8 +13,6 @@
 #  limitations under the License.

 from robot.common.statistics import Statistics
-from robot import utils
-import robot

 from loggerhelper import AbstractLogger
 from logger import LOGGER
@@ -31,7 +29,7 @@
self._xmllogger = XmlLogger(settings['Output'], settings['LogLevel']) self._register_loggers(settings['Listeners'], settings['DebugFile'])
         self._settings = settings
-        robot.output.OUTPUT = self
+        self._set_global_output()

     def _register_loggers(self, listeners, debugfile):
         LOGGER.register_context_changing_logger(self._xmllogger)
@@ -39,6 +37,11 @@
             if logger: LOGGER.register_logger(logger)
         LOGGER.disable_message_cache()

+    def _set_global_output(self):
+        # This is a hack. Hopefully we get rid of it at some point.
+        from robot import output
+        output.OUTPUT = self
+
     def close(self, suite):
         stats = Statistics(suite, self._settings['SuiteStatLevel'],
                            self._settings['TagStatInclude'],

==============================================================================
Revision: 17fc9fc7b755
Author:   Pekka Klärck
Date:     Sun Jun 19 09:18:07 2011
Log: missing import after module split. would be a good idea to run unit tests before commits.
http://code.google.com/p/robotframework/source/detail?r=17fc9fc7b755

Modified:
 /src/robot/output/stdoutlogsplitter.py

=======================================
--- /src/robot/output/stdoutlogsplitter.py      Sun Jun 19 05:51:50 2011
+++ /src/robot/output/stdoutlogsplitter.py      Sun Jun 19 09:18:07 2011
@@ -15,6 +15,7 @@
 import re

 from robot.output.loggerhelper import Message, LEVELS
+from robot import utils


 class StdoutLogSplitter(object):

==============================================================================
Revision: bd52ee1267e0
Author:   Pekka Klärck
Date:     Sun Jun 19 09:19:01 2011
Log: Renamed test module to match tested module. Also renamed tested class to match the actual class to fix tests. It would really be a good idea to run unit tests before commits.
http://code.google.com/p/robotframework/source/detail?r=bd52ee1267e0

Added:
 /utest/output/test_stdout_splitter.py
Deleted:
 /utest/output/test_output_splitter.py

=======================================
--- /dev/null
+++ /utest/output/test_stdout_splitter.py       Sun Jun 19 09:19:01 2011
@@ -0,0 +1,86 @@
+import unittest
+import time
+
+from robot.utils.asserts import assert_equals
+from robot.utils import format_time
+
+from robot.output.stdoutlogsplitter import StdoutLogSplitter as Splitter
+
+
+class TestOutputSplitter(unittest.TestCase):
+
+    def test_empty_output_should_result_in_empty_messages_list(self):
+        splitter = Splitter('')
+        assert_equals(list(splitter), [])
+
+    def test_plain_output_should_have_info_level(self):
+        splitter = Splitter('this is message\nin many\nlines.')
+        self._verify_message(splitter, 'this is message\nin many\nlines.')
+        assert_equals(len(list(splitter)), 1)
+
+    def test_leading_and_trailing_space_should_be_stripped(self):
+        splitter = Splitter('\t  \n My message    \t\r\n')
+        self._verify_message(splitter, 'My message')
+        assert_equals(len(list(splitter)), 1)
+
+    def test_legal_level_is_correctly_read(self):
+        splitter = Splitter('*DEBUG* My message details')
+        self._verify_message(splitter, 'My message details', 'DEBUG')
+        assert_equals(len(list(splitter)), 1)
+
+    def test_space_after_level_is_optional(self):
+        splitter = Splitter('*WARN*No space!')
+        self._verify_message(splitter, 'No space!', 'WARN')
+        assert_equals(len(list(splitter)), 1)
+
+    def test_it_is_possible_to_define_multiple_levels(self):
+        splitter = Splitter('*WARN* WARNING!\n'
+                            '*TRACE*msg')
+        self._verify_message(splitter, 'WARNING!', 'WARN')
+        self._verify_message(splitter, 'msg', 'TRACE', index=1)
+        assert_equals(len(list(splitter)), 2)
+
+ def test_html_flag_should_be_parsed_correctly_and_uses_info_level(self):
+        splitter = Splitter('*HTML* <b>Hello</b>')
+ self._verify_message(splitter, '<b>Hello</b>', level='INFO', html=True)
+        assert_equals(len(list(splitter)), 1)
+
+    def test_default_level_for_first_message_is_info(self):
+        splitter = Splitter('<img src="foo bar">\n'
+                                   '*DEBUG*bar foo')
+        self._verify_message(splitter, '<img src="foo bar">')
+        self._verify_message(splitter, 'bar foo', 'DEBUG', index=1)
+        assert_equals(len(list(splitter)), 2)
+
+    def test_timestamp_given_as_integer(self):
+        now = int(time.time())
+        splitter = Splitter('*INFO:xxx* No timestamp\n'
+                            '*INFO:0* Epoch\n'
+                            '*HTML:%d*X' % (now*1000))
+        self._verify_message(splitter, '*INFO:xxx* No timestamp')
+        self._verify_message(splitter, 'Epoch', timestamp=0, index=1)
+        self._verify_message(splitter, html=True, timestamp=now, index=2)
+        assert_equals(len(list(splitter)), 3)
+
+    def test_timestamp_given_as_float(self):
+        splitter = Splitter('*INFO:1x2* No timestamp\n'
+                            '*HTML:1000.123456789* X\n'
+                            '*INFO:12345678.9*X')
+        self._verify_message(splitter, '*INFO:1x2* No timestamp')
+        self._verify_message(splitter, html=True, timestamp=1, index=1)
+        self._verify_message(splitter, timestamp=12345.679, index=2)
+        assert_equals(len(list(splitter)), 3)
+
+    def _verify_message(self, splitter, msg='X', level='INFO', html=False,
+                        timestamp=None, index=0):
+        message = list(splitter)[index]
+        assert_equals(message.message, msg)
+        assert_equals(message.level, level)
+        assert_equals(message.html, html)
+        if timestamp:
+            assert_equals(message.timestamp,
+                          format_time(timestamp, millissep='.'))
+
+
+if __name__ == '__main__':
+    unittest.main()
=======================================
--- /utest/output/test_output_splitter.py       Sat Jun 18 14:14:55 2011
+++ /dev/null
@@ -1,86 +0,0 @@
-import unittest
-import time
-
-from robot.utils.asserts import assert_equals
-from robot.utils import format_time
-
-from robot.output.output import _OutputSplitter
-
-
-class TestOutputSplitter(unittest.TestCase):
-
-    def test_empty_output_should_result_in_empty_messages_list(self):
-        splitter = _OutputSplitter('')
-        assert_equals(list(splitter), [])
-
-    def test_plain_output_should_have_info_level(self):
-        splitter = _OutputSplitter('this is message\nin many\nlines.')
-        self._verify_message(splitter, 'this is message\nin many\nlines.')
-        assert_equals(len(list(splitter)), 1)
-
-    def test_leading_and_trailing_space_should_be_stripped(self):
-        splitter = _OutputSplitter('\t  \n My message    \t\r\n')
-        self._verify_message(splitter, 'My message')
-        assert_equals(len(list(splitter)), 1)
-
-    def test_legal_level_is_correctly_read(self):
-        splitter = _OutputSplitter('*DEBUG* My message details')
-        self._verify_message(splitter, 'My message details', 'DEBUG')
-        assert_equals(len(list(splitter)), 1)
-
-    def test_space_after_level_is_optional(self):
-        splitter = _OutputSplitter('*WARN*No space!')
-        self._verify_message(splitter, 'No space!', 'WARN')
-        assert_equals(len(list(splitter)), 1)
-
-    def test_it_is_possible_to_define_multiple_levels(self):
-        splitter = _OutputSplitter('*WARN* WARNING!\n'
-                                   '*TRACE*msg')
-        self._verify_message(splitter, 'WARNING!', 'WARN')
-        self._verify_message(splitter, 'msg', 'TRACE', index=1)
-        assert_equals(len(list(splitter)), 2)
-
- def test_html_flag_should_be_parsed_correctly_and_uses_info_level(self):
-        splitter = _OutputSplitter('*HTML* <b>Hello</b>')
- self._verify_message(splitter, '<b>Hello</b>', level='INFO', html=True)
-        assert_equals(len(list(splitter)), 1)
-
-    def test_default_level_for_first_message_is_info(self):
-        splitter = _OutputSplitter('<img src="foo bar">\n'
-                                   '*DEBUG*bar foo')
-        self._verify_message(splitter, '<img src="foo bar">')
-        self._verify_message(splitter, 'bar foo', 'DEBUG', index=1)
-        assert_equals(len(list(splitter)), 2)
-
-    def test_timestamp_given_as_integer(self):
-        now = int(time.time())
-        splitter = _OutputSplitter('*INFO:xxx* No timestamp\n'
-                                   '*INFO:0* Epoch\n'
-                                   '*HTML:%d* X' % (now*1000))
-        self._verify_message(splitter, '*INFO:xxx* No timestamp')
-        self._verify_message(splitter, 'Epoch', timestamp=0, index=1)
-        self._verify_message(splitter, html=True, timestamp=now, index=2)
-        assert_equals(len(list(splitter)), 3)
-
-    def test_timestamp_given_as_float(self):
-        splitter = _OutputSplitter('*INFO:1x2* No timestamp\n'
-                                   '*HTML:1000.123456789* X\n'
-                                   '*INFO:12345678.9* X')
-        self._verify_message(splitter, '*INFO:1x2* No timestamp')
-        self._verify_message(splitter, html=True, timestamp=1, index=1)
-        self._verify_message(splitter, timestamp=12345.679, index=2)
-        assert_equals(len(list(splitter)), 3)
-
-    def _verify_message(self, splitter, msg='X', level='INFO', html=False,
-                        timestamp=None, index=0):
-        message = list(splitter)[index]
-        assert_equals(message.message, msg)
-        assert_equals(message.level, level)
-        assert_equals(message.html, html)
-        if timestamp:
-            assert_equals(message.timestamp,
-                          format_time(timestamp, millissep='.'))
-
-
-if __name__ == '__main__':
-    unittest.main()

==============================================================================
Revision: c12494a4c54b
Author:   Pekka Klärck
Date:     Sun Jun 19 09:23:36 2011
Log:      better place
http://code.google.com/p/robotframework/source/detail?r=c12494a4c54b

Added:
 /atest/robot/cli/runner/log_level.txt
Deleted:
 /atest/robot/output/log_levels.txt

=======================================
--- /dev/null
+++ /atest/robot/cli/runner/log_level.txt       Sun Jun 19 09:23:36 2011
@@ -0,0 +1,59 @@
+*** Settings ***
+Documentation Tests for setting log level from command line with --loglevel option. Setting log level while executing tests (BuiltIn.Set Log Level) is tested with BuiltIn library keywords.
+Default Tags    regression  pybot  jybot
+Resource        atest_resource.txt
+
+*** Variables ***
+${TESTDATA}  misc/pass_and_fail.html
+
+*** Test Cases ***
+No Log Level Given
+    [Documentation]  Default level of INFO should be used
+    Run Tests  ${EMPTY}  ${TESTDATA}
+ Check Log Message ${SUITE.tests[0].kws[0].kws[0].msgs[0]} Hello says "Pass"! INFO + Should Be Equal As Integers ${SUITE.tests[0].kws[0].kws[1].message_count} 0 + Check Log Message ${SUITE.tests[1].kws[1].msgs[0]} Expected failure FAIL
+
+Trace Level
+    Run Tests  --loglevel TRACE  ${TESTDATA}
+ Check Log Message ${SUITE.tests[0].kws[0].kws[0].msgs[0]} Arguments: [ u'Hello says "Pass"!' | u'INFO' ] TRACE + Check Log Message ${SUITE.tests[0].kws[0].kws[0].msgs[1]} Hello says "Pass"! INFO + Check Log Message ${SUITE.tests[0].kws[0].kws[0].msgs[2]} Return: None TRACE + Check Log Message ${SUITE.tests[0].kws[0].kws[1].msgs[1]} Debug message DEBUG + Check Log Message ${SUITE.tests[1].kws[1].msgs[0]} Arguments: [ msg=u'Expected failure' ] TRACE + Check Log Message ${SUITE.tests[1].kws[1].msgs[1]} Expected failure FAIL
+
+Debug Level
+    Run Tests  --loglevel debug  ${TESTDATA}
+ Check Log Message ${SUITE.tests[0].kws[0].kws[0].msgs[0]} Hello says "Pass"! INFO + Check Log Message ${SUITE.tests[0].kws[0].kws[1].msgs[0]} Debug message DEBUG + Check Log Message ${SUITE.tests[1].kws[1].msgs[0]} Expected failure FAIL
+
+Info Level
+    Run Tests  -L InFo  ${TESTDATA}
+ Check Log Message ${SUITE.tests[0].kws[0].kws[0].msgs[0]} Hello says "Pass"! INFO + Should Be Equal As Integers ${SUITE.tests[0].kws[0].kws[1].message_count} 0 + Check Log Message ${SUITE.tests[1].kws[1].msgs[0]} Expected failure FAIL
+
+Warn Level
+ Run Tests --loglevel WARN --variable LEVEL1:WARN --variable LEVEL2:INFO ${TESTDATA} + Check Log Message ${SUITE.tests[0].kws[0].kws[0].msgs[0]} Hello says "Pass"! WARN + Should Be Equal As Integers ${SUITE.tests[0].kws[0].kws[1].message_count} 0 + Check Log Message ${SUITE.tests[1].kws[1].msgs[0]} Expected failure FAIL
+
+Warnings Should Be Written To Syslog
+    Should Be Equal  ${PREV TEST NAME}  Warn Level
+    Check Log Message  ${ERRORS.msgs[0]}  Hello says "Suite Setup"!  WARN
+    Check Log Message  ${ERRORS.msgs[1]}  Hello says "Pass"!  WARN
+    Check Log Message  ${ERRORS.msgs[2]}  Hello says "Fail"!  WARN
+    Should Be True  ${ERRORS.msg_count} == 3
+    Check Syslog Contains  | WARN \ |  Hello says "Suite Setup"!
+    Check Syslog Contains  | WARN \ |  Hello says "Pass"!
+    Check Syslog Contains  | WARN \ |  Hello says "Fail"!
+
+None Level
+ Run Tests --loglevel NONE --variable LEVEL1:ERROR --variable LEVEL2:FAIL ${TESTDATA} + Should Be Equal As Integers ${SUITE.tests[0].kws[0].kws[0].message_count} 0 + Should Be Equal As Integers ${SUITE.tests[0].kws[0].kws[1].message_count} 0
+    Should Be Equal As Integers  ${SUITE.tests[1].kws[1].message_count}  0
+
=======================================
--- /atest/robot/output/log_levels.txt  Wed Apr 14 12:38:44 2010
+++ /dev/null
@@ -1,59 +0,0 @@
-*** Settings ***
-Documentation Tests for setting log level from command line with --loglevel option. Setting log level while executing tests (BuiltIn.Set Log Level) is tested with BuiltIn library keywords.
-Default Tags    regression  pybot  jybot
-Resource        atest_resource.txt
-
-*** Variables ***
-${TESTDATA}  misc/pass_and_fail.html
-
-*** Test Cases ***
-No Log Level Given
-    [Documentation]  Default level of INFO should be used
-    Run Tests  ${EMPTY}  ${TESTDATA}
- Check Log Message ${SUITE.tests[0].kws[0].kws[0].msgs[0]} Hello says "Pass"! INFO - Should Be Equal As Integers ${SUITE.tests[0].kws[0].kws[1].message_count} 0 - Check Log Message ${SUITE.tests[1].kws[1].msgs[0]} Expected failure FAIL
-
-Trace Level
-    Run Tests  --loglevel TRACE  ${TESTDATA}
- Check Log Message ${SUITE.tests[0].kws[0].kws[0].msgs[0]} Arguments: [ u'Hello says "Pass"!' | u'INFO' ] TRACE - Check Log Message ${SUITE.tests[0].kws[0].kws[0].msgs[1]} Hello says "Pass"! INFO - Check Log Message ${SUITE.tests[0].kws[0].kws[0].msgs[2]} Return: None TRACE - Check Log Message ${SUITE.tests[0].kws[0].kws[1].msgs[1]} Debug message DEBUG - Check Log Message ${SUITE.tests[1].kws[1].msgs[0]} Arguments: [ msg=u'Expected failure' ] TRACE - Check Log Message ${SUITE.tests[1].kws[1].msgs[1]} Expected failure FAIL
-
-Debug Level
-    Run Tests  --loglevel debug  ${TESTDATA}
- Check Log Message ${SUITE.tests[0].kws[0].kws[0].msgs[0]} Hello says "Pass"! INFO - Check Log Message ${SUITE.tests[0].kws[0].kws[1].msgs[0]} Debug message DEBUG - Check Log Message ${SUITE.tests[1].kws[1].msgs[0]} Expected failure FAIL
-
-Info Level
-    Run Tests  -L InFo  ${TESTDATA}
- Check Log Message ${SUITE.tests[0].kws[0].kws[0].msgs[0]} Hello says "Pass"! INFO - Should Be Equal As Integers ${SUITE.tests[0].kws[0].kws[1].message_count} 0 - Check Log Message ${SUITE.tests[1].kws[1].msgs[0]} Expected failure FAIL
-
-Warn Level
- Run Tests --loglevel WARN --variable LEVEL1:WARN --variable LEVEL2:INFO ${TESTDATA} - Check Log Message ${SUITE.tests[0].kws[0].kws[0].msgs[0]} Hello says "Pass"! WARN - Should Be Equal As Integers ${SUITE.tests[0].kws[0].kws[1].message_count} 0 - Check Log Message ${SUITE.tests[1].kws[1].msgs[0]} Expected failure FAIL
-
-Warnings Should Be Written To Syslog
-    Should Be Equal  ${PREV TEST NAME}  Warn Level
-    Check Log Message  ${ERRORS.msgs[0]}  Hello says "Suite Setup"!  WARN
-    Check Log Message  ${ERRORS.msgs[1]}  Hello says "Pass"!  WARN
-    Check Log Message  ${ERRORS.msgs[2]}  Hello says "Fail"!  WARN
-    Should Be True  ${ERRORS.msg_count} == 3
-    Check Syslog Contains  | WARN \ |  Hello says "Suite Setup"!
-    Check Syslog Contains  | WARN \ |  Hello says "Pass"!
-    Check Syslog Contains  | WARN \ |  Hello says "Fail"!
-
-None Level
- Run Tests --loglevel NONE --variable LEVEL1:ERROR --variable LEVEL2:FAIL ${TESTDATA} - Should Be Equal As Integers ${SUITE.tests[0].kws[0].kws[0].message_count} 0 - Should Be Equal As Integers ${SUITE.tests[0].kws[0].kws[1].message_count} 0
-    Should Be Equal As Integers  ${SUITE.tests[1].kws[1].message_count}  0
-

Reply via email to