Add console parameter to behaveframework 75/72675/3
authorFrancois Regis Menguy <francoisregis.menguy@orange.com>
Mon, 26 Apr 2021 13:09:11 +0000 (15:09 +0200)
committerCédric Ollivier <cedric.ollivier@orange.com>
Thu, 19 Aug 2021 12:46:30 +0000 (14:46 +0200)
Change-Id: I289de43bdea8c52181ec0622c83c5c56dd6890e3
Signed-off-by: Francois Regis Menguy <francoisregis.menguy@orange.com>
(cherry picked from commit 05013a4caa67062ddae4b570f67b77365a96e326)

xtesting/core/behaveframework.py
xtesting/tests/unit/core/test_behaveframework.py

index 2b41614..dacda27 100644 (file)
@@ -97,6 +97,8 @@ class BehaveFramework(testcase.TestCase):
             html_file = os.path.join(self.res_dir, 'output.html')
             config += ['--format=behave_html_formatter:HTMLFormatter',
                        '--outfile={}'.format(html_file)]
+        if kwargs.get("console", False):
+            config += ['--format=pretty', '--outfile=-']
         for feature in suites:
             config.append(feature)
         self.start_time = time.time()
index 414d96b..2baaba0 100644 (file)
@@ -146,10 +146,10 @@ class RunTesting(unittest.TestCase):
 
     @mock.patch('os.makedirs')
     @mock.patch('xtesting.core.behaveframework.behave_main')
-    def _test_parse_results(self, status, *args):
+    def _test_parse_results(self, status, console, *args):
         self.assertEqual(
             self.test.run(
-                suites=self.suites, tags=self.tags),
+                suites=self.suites, tags=self.tags, console=console),
             status)
         html_file = os.path.join(self.test.res_dir, 'output.html')
         args_list = [
@@ -160,16 +160,21 @@ class RunTesting(unittest.TestCase):
             args_list += [
                 '--format=behave_html_formatter:HTMLFormatter',
                 '--outfile={}'.format(html_file)]
+        if console:
+            args_list += ['--format=pretty', '--outfile=-']
         args_list.append('foo')
         args[0].assert_called_once_with(args_list)
         args[1].assert_called_once_with(self.test.res_dir)
 
-    def test_parse_results_exc(self):
+    def test_parse_results_exc(self, console=False):
         with mock.patch.object(self.test, 'parse_results',
                                side_effect=Exception) as mock_method:
-            self._test_parse_results(self.test.EX_RUN_ERROR)
+            self._test_parse_results(self.test.EX_RUN_ERROR, console)
             mock_method.assert_called_once_with()
 
+    def test_parse_results_exc_console(self):
+        self.test_parse_results_exc(console=True)
+
 
 if __name__ == "__main__":
     logging.disable(logging.CRITICAL)