In the event that a test rapidly fails (such as system misconfiguration) the logger will be passed the default value of Test.result(), which is framework.status.FAIL, which is not a string. The logger needs to be able to handle this.
This also makes the assertions in log.py return a descriptive error message Signed-off-by: Dylan Baker <[email protected]> --- framework/log.py | 10 ++++++---- framework/tests/log_tests.py | 22 ++++++++++++++++++++++ 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/framework/log.py b/framework/log.py index d261dbb..e0f8cf6 100644 --- a/framework/log.py +++ b/framework/log.py @@ -111,24 +111,26 @@ class Log(object): """ # Mark running complete - assert value in self.__running + assert value in self.__running, "Test to finish it not running" self.__running.remove(value) # increment the number of completed tests self.__complete += 1 - assert result in self.__summary_keys + assert result in self.__summary_keys, 'Result "{0}" not in {1}'.format( + result, self.__summary_keys) self.__summary[result] += 1 @synchronized_self def log(self, name, result): - """ Print to the screen + """ Print to the screen Works by moving the cursor back to the front of the line and printing over it. """ - assert result in self.__summary_keys + assert result in self.__summary_keys, 'Result "{0}" not in {1}'.format( + result, self.__summary_keys) self.__print(name, result) @synchronized_self diff --git a/framework/tests/log_tests.py b/framework/tests/log_tests.py index f04040c..7936a02 100644 --- a/framework/tests/log_tests.py +++ b/framework/tests/log_tests.py @@ -24,6 +24,7 @@ import types import nose.tools as nt from framework.log import Log import framework.tests.utils as utils +import framework.status as status valid_statuses = ('pass', 'fail', 'crash', 'warn', 'dmesg-warn', 'dmesg-fail', 'skip', 'dry-run') @@ -95,3 +96,24 @@ def test_post_log_increment_summary_bad(): log = Log(100, False) ret = log.pre_log() log.post_log(ret, 'fails') + + +def test_post_log_status(): + """ Log.post_log() handles a status object being passed """ + log = Log(100, False) + + try: + x = log.pre_log() + log.post_log(x, status.FAIL) + except Exception as e: + raise AssertionError(e) + + +def test_log_status(): + """ Log.post_log() handles a status object being passed """ + log = Log(100, False) + + try: + log.log('foo', status.FAIL) + except Exception as e: + raise AssertionError(e) -- 2.1.0 _______________________________________________ Piglit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/piglit
