diff --git a/avocado/job.py b/avocado/job.py index 463f6cb050f7794310479c3821d39052da5aabed..42bb3bdb108c3a09f2079f21e93a406af3f98137 100644 --- a/avocado/job.py +++ b/avocado/job.py @@ -166,8 +166,6 @@ class Job(object): else: test_result_class = result.HumanTestResult if self.args is not None: - self.args.test_result_debuglog = self.debuglog - self.args.test_result_loglevel = self.loglevel self.args.test_result_total = len(urls) test_result = test_result_class(self.output_manager, self.args) return test_result @@ -223,7 +221,12 @@ class Job(object): test_result = self._make_test_result(params_list) self.test_runner = self._make_test_runner(test_result) + self.output_manager.start_file_logging(self.debuglog, + self.loglevel) + self.output_manager.debuglog = self.debuglog failures = self.test_runner.run(params_list) + self.output_manager.stop_file_logging() + # If it's all good so far, set job status to 'PASS' if self.status == 'RUNNING': self.status = 'PASS' @@ -234,6 +237,7 @@ class Job(object): if self.args.archive: name = os.path.basename(self.debugdir) archive.create_zip(name, self.debugdir) + tests_status = not bool(failures) if tests_status: return error_codes.numeric_status['AVOCADO_ALL_OK'] diff --git a/avocado/plugins/jsonresult.py b/avocado/plugins/jsonresult.py index d3f82f91e80a04cde6f793e85417349bbfd8b97b..654f5ad147a8ae5cd40028c9e4d091b35dd974f1 100644 --- a/avocado/plugins/jsonresult.py +++ b/avocado/plugins/jsonresult.py @@ -33,9 +33,7 @@ class JSONTestResult(TestResult): Called once before any tests are executed. """ TestResult.start_tests(self) - self.stream.start_file_logging(self.args.test_result_debuglog, - self.args.test_result_loglevel) - self.json = {'debuglog': self.args.test_result_debuglog, + self.json = {'debuglog': self.stream.debuglog, 'tests': []} def end_test(self, test): @@ -62,7 +60,6 @@ class JSONTestResult(TestResult): Called once after all tests are executed. """ TestResult.end_tests(self) - self.stream.stop_file_logging() self.json.update({ 'total': self.tests_total, 'pass': len(self.passed), diff --git a/avocado/plugins/vm.py b/avocado/plugins/vm.py index cbea6bab47de2545f9b13d9b7bd633afb4e1663f..c640f13af381917c990fc2fd6d2cfc9aad91a381 100644 --- a/avocado/plugins/vm.py +++ b/avocado/plugins/vm.py @@ -78,7 +78,7 @@ class VMTestRunner(TestRunner): if not status.mapping[test.status]: failures.append(test.tagged_name) self.result.end_tests() - local_log_dir = os.path.dirname(self.result.args.test_result_debuglog) + local_log_dir = os.path.dirname(self.result.stream.debuglog) zip_filename = os.path.basename(remote_log_dir) + '.zip' zip_path_filename = os.path.join(local_log_dir, zip_filename) self.result.vm.remote.receive_files(local_log_dir, zip_filename) @@ -172,7 +172,7 @@ class VMTestResult(TestResult): self.stream.log_header("TOTAL SKIPPED: %d" % len(self.skipped)) self.stream.log_header("TOTAL WARNED: %d" % len(self.warned)) self.stream.log_header("ELAPSED TIME: %.2f s" % self.total_time) - self.stream.log_header("DEBUG LOG: %s" % self.args.test_result_debuglog) + self.stream.log_header("DEBUG LOG: %s" % self.stream.debuglog) def start_test(self, test): """ diff --git a/avocado/result.py b/avocado/result.py index f04c6ba8cd9a11274821cff416166ecf950376bb..1c5e684d93a3bc2e95c93c3c17d1e16d1433e50e 100644 --- a/avocado/result.py +++ b/avocado/result.py @@ -138,10 +138,7 @@ class HumanTestResult(TestResult): Called once before any tests are executed. """ TestResult.start_tests(self) - if hasattr(self.args, 'test_result_debuglog'): - self.stream.start_file_logging(self.args.test_result_debuglog, - self.args.test_result_loglevel) - self.stream.log_header("DEBUG LOG: %s" % self.args.test_result_debuglog) + self.stream.log_header("DEBUG LOG: %s" % self.stream.debuglog) self.stream.log_header("TOTAL TESTS: %s" % self.tests_total) def end_tests(self): @@ -154,8 +151,6 @@ class HumanTestResult(TestResult): self.stream.log_header("TOTAL SKIPPED: %d" % len(self.skipped)) self.stream.log_header("TOTAL WARNED: %d" % len(self.warned)) self.stream.log_header("ELAPSED TIME: %.2f s" % self.total_time) - if hasattr(self.args, 'test_result_debuglog'): - self.stream.stop_file_logging() def start_test(self, test): """ diff --git a/selftests/all/unit/avocado/jsonresult_unittest.py b/selftests/all/unit/avocado/jsonresult_unittest.py index 27eb6ddd0efae77857c3e6852d3edee4842d70cf..38925d4115867d4e8080f50e6ca371a471cf2033 100755 --- a/selftests/all/unit/avocado/jsonresult_unittest.py +++ b/selftests/all/unit/avocado/jsonresult_unittest.py @@ -47,10 +47,9 @@ class JSONResultTest(unittest.TestCase): def setUp(self): self.tmpfile = mkstemp() - args = argparse.Namespace(json_output=self.tmpfile[1], - test_result_debuglog='debuglog', - test_result_loglevel='loglevel') + args = argparse.Namespace(json_output=self.tmpfile[1]) stream = _Stream() + stream.debuglog = 'debuglog' self.test_result = jsonresult.JSONTestResult(stream, args) self.test_result.filename = self.tmpfile[1] self.test_result.start_tests() diff --git a/selftests/all/unit/avocado/vm_unittest.py b/selftests/all/unit/avocado/vm_unittest.py index f3d46a2729c84061d95706c93a274ece166e039b..3592f919f085d5f95b730a5916ec25e9cb710c91 100755 --- a/selftests/all/unit/avocado/vm_unittest.py +++ b/selftests/all/unit/avocado/vm_unittest.py @@ -48,9 +48,9 @@ class _Stream(object): class VMResultTest(unittest.TestCase): def setUp(self): - args = argparse.Namespace(test_result_debuglog='debuglog', - test_result_loglevel='loglevel') + args = argparse.Namespace() stream = _Stream() + stream.debuglog = 'debuglog' self.test_result = vm.VMTestResult(stream, args) j = '''{"tests": [{"test": "sleeptest.1", "url": "sleeptest", "status": "PASS", "time": 1.23}], "debuglog": "/home/user/avocado/logs/run-2014-05-26-15.45.37/debug.log",