Best Python code snippet using avocado_python
sysinfo.py
Source:sysinfo.py  
...456    def _log_installed_packages(self, path):457        installed_path = os.path.join(path, "installed_packages")458        installed_packages = "\n".join(self._get_installed_packages()) + "\n"459        genio.write_file(installed_path, installed_packages)460    def _log_modified_packages(self, path):461        """462        Log any changes to installed packages.463        """464        old_packages = set(self._installed_pkgs)465        new_packages = set(self._get_installed_packages())466        added_path = os.path.join(path, "added_packages")467        added_packages = "\n".join(new_packages - old_packages) + "\n"468        genio.write_file(added_path, added_packages)469        removed_path = os.path.join(self.basedir, "removed_packages")470        removed_packages = "\n".join(old_packages - new_packages) + "\n"471        genio.write_file(removed_path, removed_packages)472    def start_job_hook(self):473        """474        Logging hook called whenever a job starts.475        """476        for log_hook in self.start_job_collectibles:477            if isinstance(log_hook, Daemon):  # log daemons in profile directory478                log_hook.run(self.profile_dir)479            else:480                log_hook.run(self.pre_dir)481        if self.log_packages:482            self._log_installed_packages(self.pre_dir)483    def end_job_hook(self):484        """485        Logging hook called whenever a job finishes.486        """487        for log_hook in self.end_job_collectibles:488            log_hook.run(self.post_dir)489        # Stop daemon(s) started previously490        for log_hook in self.start_job_collectibles:491            if isinstance(log_hook, Daemon):492                log_hook.stop()493        if self.log_packages:494            self._log_modified_packages(self.post_dir)495    def start_test_hook(self):496        """497        Logging hook called before a test starts.498        """499        for log_hook in self.start_test_collectibles:500            if isinstance(log_hook, Daemon):  # log daemons in profile directory501                log_hook.run(self.profile_dir)502            else:503                log_hook.run(self.pre_dir)504        if self.log_packages:505            self._log_installed_packages(self.pre_dir)506    def end_test_hook(self):507        """508        Logging hook called after a test finishes.509        """510        for log_hook in self.end_test_collectibles:511            log_hook.run(self.post_dir)512        # Stop daemon(s) started previously513        for log_hook in self.start_test_collectibles:514            if isinstance(log_hook, Daemon):515                log_hook.stop()516        if self.log_packages:517            self._log_modified_packages(self.post_dir)518def collect_sysinfo(args):519    """520    Collect sysinfo to a base directory.521    :param args: :class:`argparse.Namespace` object with command line params.522    """523    output.add_log_handler(log.name)524    basedir = args.sysinfodir525    if not basedir:526        cwd = os.getcwd()527        timestamp = time.strftime('%Y-%m-%d-%H.%M.%S')528        basedir = os.path.join(cwd, 'sysinfo-%s' % timestamp)529    sysinfo_logger = SysInfo(basedir=basedir)530    sysinfo_logger.start_job_hook()531    sysinfo_logger.end_job_hook()...Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!
