From 648d31af02248b8b2da059e228c10f1e3f81eb5b Mon Sep 17 00:00:00 2001 From: Cédric Ollivier Date: Thu, 11 May 2017 10:03:47 +0200 Subject: Modify TestCase.__str__() to use PrettyTable MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It adds PrettyTable as requirement even if it's already defined in OpenStack client dependencies. If the TestCase object is considered as invalid, it simply returns the default str. Change-Id: Iee788aef2a13694d9482560977cbbf21c7f2c967 Signed-off-by: Cédric Ollivier --- functest/core/testcase.py | 16 ++++++++++------ functest/tests/unit/core/test_testcase.py | 6 ++++-- requirements.txt | 1 + test-requirements.txt | 1 + 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/functest/core/testcase.py b/functest/core/testcase.py index 49fae609..317c4f59 100644 --- a/functest/core/testcase.py +++ b/functest/core/testcase.py @@ -12,6 +12,8 @@ import logging import os +import prettytable + import functest.utils.functest_utils as ft_utils __author__ = "Cedric Ollivier " @@ -49,14 +51,16 @@ class TestCase(object): assert self.case_name result = 'PASS' if(self.is_successful( ) == TestCase.EX_OK) else 'FAIL' - return ('| {0:<23} | {1:<13} | {2:<10} | {3:<13} |' - '\n{4:-<26}{4:-<16}{4:-<13}{4:-<16}{4}'.format( - self.case_name, self.project_name, - self.get_duration(), result, '+')) + msg = prettytable.PrettyTable( + header_style='upper', + field_names=['test case', 'project', 'duration', + 'result']) + msg.add_row([self.case_name, self.project_name, + self.get_duration(), result]) + return msg.get_string() except AssertionError: self.__logger.error("We cannot print invalid objects") - return '| {0:^68} |\n{1:-<26}{1:-<16}{1:-<13}{1:-<16}{1}'.format( - 'INVALID OBJECT', '+') + return super(TestCase, self).__str__() def get_duration(self): """Return the duration of the test case. diff --git a/functest/tests/unit/core/test_testcase.py b/functest/tests/unit/core/test_testcase.py index b25ce226..08a717a2 100644 --- a/functest/tests/unit/core/test_testcase.py +++ b/functest/tests/unit/core/test_testcase.py @@ -191,11 +191,13 @@ class TestCaseTesting(unittest.TestCase): def test_str_project_name_ko(self): self.test.project_name = None - self.assertIn("INVALID OBJECT", str(self.test)) + self.assertIn("=0.7.1,<0.8 # BSD diff --git a/test-requirements.txt b/test-requirements.txt index 471e9c30..f68a56f0 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -26,3 +26,4 @@ robotframework-requests==0.3.8 robotframework-sshlibrary==2.1.1 subprocess32==3.2.7 virtualenv==15.1.0 +PrettyTable>=0.7.1,<0.8 # BSD -- cgit 1.2.3-korg