diff --git a/avocado/plugins/journal.py b/avocado/plugins/journal.py index 75bfdd3f961ee9b506ef0e3f0bfeb5038ea8b216..0e282411ccb43c29528c11530658736c5fb61c37 100644 --- a/avocado/plugins/journal.py +++ b/avocado/plugins/journal.py @@ -134,5 +134,8 @@ class Journal(plugin.Plugin): self.configured = True def activate(self, args): - if args.journal: - self.parser.application.set_defaults(journal_result=TestResultJournal) + try: + if args.journal: + self.parser.application.set_defaults(journal_result=TestResultJournal) + except AttributeError: + pass diff --git a/avocado/plugins/jsonresult.py b/avocado/plugins/jsonresult.py index 669fa76c3ffcc2dc4315f18072c2780f9d953208..2c4ad5ee810ee94e63ce286886544e2207e67084 100644 --- a/avocado/plugins/jsonresult.py +++ b/avocado/plugins/jsonresult.py @@ -104,5 +104,8 @@ class JSON(plugin.Plugin): self.configured = True def activate(self, app_args): - if app_args.json_output: - self.parser.application.set_defaults(json_result=JSONTestResult) + try: + if app_args.json_output: + self.parser.application.set_defaults(json_result=JSONTestResult) + except AttributeError: + pass diff --git a/avocado/plugins/vm.py b/avocado/plugins/vm.py index 4b9224bbc9c98bfdcca758027d54b90da1d4901d..eb3f3fb9c1ab332e51defb2153340e304a74aab6 100644 --- a/avocado/plugins/vm.py +++ b/avocado/plugins/vm.py @@ -322,6 +322,9 @@ class RunVM(plugin.Plugin): self.configured = True def activate(self, app_args): - if app_args.vm: - self.parser.set_defaults(vm_result=VMTestResult, - test_runner=VMTestRunner) + try: + if app_args.vm: + self.parser.set_defaults(vm_result=VMTestResult, + test_runner=VMTestRunner) + except AttributeError: + pass diff --git a/avocado/plugins/xunit.py b/avocado/plugins/xunit.py index d75b665d02105c47705bcf190160ede82e5cef9b..b7ff696abce73b6883cc09c2e9dab7b3c1cc4483 100644 --- a/avocado/plugins/xunit.py +++ b/avocado/plugins/xunit.py @@ -240,5 +240,8 @@ class XUnit(plugin.Plugin): self.configured = True def activate(self, app_args): - if app_args.xunit_output: - self.parser.application.set_defaults(xunit_result=xUnitTestResult) + try: + if app_args.xunit_output: + self.parser.application.set_defaults(xunit_result=xUnitTestResult) + except AttributeError: + pass diff --git a/selftests/all/functional/avocado/basic_tests.py b/selftests/all/functional/avocado/basic_tests.py index 41503d7f5e4d47b8c42561be68d17315de8353a5..ba020a14aa2985fe9e1c93a7775cb41894690899 100644 --- a/selftests/all/functional/avocado/basic_tests.py +++ b/selftests/all/functional/avocado/basic_tests.py @@ -352,6 +352,17 @@ class PluginsTest(unittest.TestCase): (expected_rc, result)) self.assertNotIn('Disabled', output) + def test_Namespace_object_has_no_attribute(self): + os.chdir(basedir) + cmd_line = './scripts/avocado plugins' + result = process.run(cmd_line, ignore_status=True) + output = result.stderr + expected_rc = 0 + self.assertEqual(result.exit_status, expected_rc, + "Avocado did not return rc %d:\n%s" % + (expected_rc, result)) + self.assertNotIn("'Namespace' object has no attribute", output) + class ParseXMLError(Exception): pass