During pylint checking, we've found: ************* Module server.test E0202:159:_sysinfo_logger.before_hook: An attribute inherited from _sysinfo_logger hide this method E0202:169:_sysinfo_logger.before_iteration_hook: An attribute inherited from _sysinfo_logger hide this method E0202:185:_sysinfo_logger.after_iteration_hook: An attribute inherited from _sysinfo_logger hide this method E0202:200:_sysinfo_logger.after_hook: An attribute inherited from _sysinfo_logger hide this method
In fact, the way the class _sysinfo_logger was disabling before/after iteration hooks was by setting attributes set to None to hide the iteration hooks methods. We could do the same in a cleaner way by setting an attribute that can switch on/off the execution of the code present in these hook methods. So implement this and fix the pylint complaints. Signed-off-by: Lucas Meneghel Rodrigues <[email protected]> --- server/test.py | 64 +++++++++++++++++++++++++++++++--------------------------- 1 file changed, 34 insertions(+), 30 deletions(-) diff --git a/server/test.py b/server/test.py index 502eb55..221962d 100644 --- a/server/test.py +++ b/server/test.py @@ -77,11 +77,11 @@ class _sysinfo_logger(object): self.host = None self.autotest = None self.outputdir = None + self.disable_hooks = False if len(job.machines) != 1: # disable logging on multi-machine tests - self.before_hook = self.after_hook = None - self.before_iteration_hook = self.after_iteration_hook = None + self.disable_hooks = True def _install(self): @@ -157,53 +157,57 @@ class _sysinfo_logger(object): @log.log_and_ignore_errors("pre-test server sysinfo error:") @install_autotest_and_run def before_hook(self, mytest, host, at, outputdir): - # run the pre-test sysinfo script - at.run(_sysinfo_before_test_script % outputdir, - results_dir=self.job.resultdir) + if not self.disable_hooks: + # run the pre-test sysinfo script + at.run(_sysinfo_before_test_script % outputdir, + results_dir=self.job.resultdir) - self._pull_pickle(host, outputdir) + self._pull_pickle(host, outputdir) @log.log_and_ignore_errors("pre-test iteration server sysinfo error:") @install_autotest_and_run def before_iteration_hook(self, mytest, host, at, outputdir): - # this function is called after before_hook() se we have sysinfo state - # to push to the server - self._push_pickle(host, outputdir); - # run the pre-test iteration sysinfo script - at.run(_sysinfo_iteration_script % - (outputdir, 'log_before_each_iteration', mytest.iteration, - 'before'), - results_dir=self.job.resultdir) + if not self.disable_hooks: + # this function is called after before_hook() se we have sysinfo state + # to push to the server + self._push_pickle(host, outputdir); + # run the pre-test iteration sysinfo script + at.run(_sysinfo_iteration_script % + (outputdir, 'log_before_each_iteration', mytest.iteration, + 'before'), + results_dir=self.job.resultdir) - # get the new sysinfo state from the client - self._pull_pickle(host, outputdir) + # get the new sysinfo state from the client + self._pull_pickle(host, outputdir) @log.log_and_ignore_errors("post-test iteration server sysinfo error:") @install_autotest_and_run def after_iteration_hook(self, mytest, host, at, outputdir): - # push latest sysinfo state to the client - self._push_pickle(host, outputdir); - # run the post-test iteration sysinfo script - at.run(_sysinfo_iteration_script % - (outputdir, 'log_after_each_iteration', mytest.iteration, - 'after'), - results_dir=self.job.resultdir) + if not self.disable_hooks: + # push latest sysinfo state to the client + self._push_pickle(host, outputdir); + # run the post-test iteration sysinfo script + at.run(_sysinfo_iteration_script % + (outputdir, 'log_after_each_iteration', mytest.iteration, + 'after'), + results_dir=self.job.resultdir) - # get the new sysinfo state from the client - self._pull_pickle(host, outputdir) + # get the new sysinfo state from the client + self._pull_pickle(host, outputdir) @log.log_and_ignore_errors("post-test server sysinfo error:") @install_autotest_and_run def after_hook(self, mytest, host, at, outputdir): - self._push_pickle(host, outputdir); - # run the post-test sysinfo script - at.run(_sysinfo_after_test_script % outputdir, - results_dir=self.job.resultdir) + if not self.disable_hooks: + self._push_pickle(host, outputdir); + # run the post-test sysinfo script + at.run(_sysinfo_after_test_script % outputdir, + results_dir=self.job.resultdir) - self._pull_sysinfo_keyval(host, outputdir, mytest) + self._pull_sysinfo_keyval(host, outputdir, mytest) def cleanup(self, host_close=True): -- 1.7.11.4 _______________________________________________ Autotest-kernel mailing list [email protected] https://www.redhat.com/mailman/listinfo/autotest-kernel
