Best Python code snippet using autotest_python
base_sysinfo.py
Source:base_sysinfo.py  
...165            return self.sysinfodir166        else:167            boot_dir = "boot.%d" % (reboot_count - 1)168            return os.path.join(self.sysinfodir, boot_dir)169    def _get_iteration_subdir(self, test, iteration):170        iter_dir = "iteration.%d" % iteration171        logdir = os.path.join(self._get_sysinfodir(test.outputdir), iter_dir)172        if not os.path.exists(logdir):173            os.mkdir(logdir)174        return logdir175    @log.log_and_ignore_errors("post-reboot sysinfo error:")176    def log_per_reboot_data(self):177        """ Logging hook called whenever a job starts, and again after178        any reboot. """179        logdir = self._get_boot_subdir(next=True)180        if not os.path.exists(logdir):181            os.mkdir(logdir)182        for log in (self.test_loggables | self.boot_loggables):183            log.run(logdir)184        # also log any installed packages185        installed_path = os.path.join(logdir, "installed_packages")186        installed_packages = "\n".join(package.list_all()) + "\n"187        utils.open_write_close(installed_path, installed_packages)188    @log.log_and_ignore_errors("pre-test sysinfo error:")189    def log_before_each_test(self, test):190        """ Logging hook called before a test starts. """191        self._installed_packages = package.list_all()192        if os.path.exists("/var/log/messages"):193            stat = os.stat("/var/log/messages")194            self._messages_size = stat.st_size195            self._messages_inode = stat.st_ino196    @log.log_and_ignore_errors("post-test sysinfo error:")197    def log_after_each_test(self, test):198        """ Logging hook called after a test finishs. """199        test_sysinfodir = self._get_sysinfodir(test.outputdir)200        # create a symlink in the test sysinfo dir to the current boot201        reboot_dir = self._get_boot_subdir()202        assert os.path.exists(reboot_dir)203        symlink_dest = os.path.join(test_sysinfodir, "reboot_current")204        symlink_src = utils.get_relative_path(reboot_dir,205                                              os.path.dirname(symlink_dest))206        try:207            os.symlink(symlink_src, symlink_dest)208        except Exception, e:209            raise Exception, '%s: whilst linking %s to %s' % (e, symlink_src,210                                                              symlink_dest)211        # run all the standard logging commands212        for log in self.test_loggables:213            log.run(test_sysinfodir)214        # grab any new data from /var/log/messages215        self._log_messages(test_sysinfodir)216        # log some sysinfo data into the test keyval file217        keyval = self.log_test_keyvals(test_sysinfodir)218        test.write_test_keyval(keyval)219        # log any changes to installed packages220        old_packages = set(self._installed_packages)221        new_packages = set(package.list_all())222        added_path = os.path.join(test_sysinfodir, "added_packages")223        added_packages = "\n".join(new_packages - old_packages) + "\n"224        utils.open_write_close(added_path, added_packages)225        removed_path = os.path.join(test_sysinfodir, "removed_packages")226        removed_packages = "\n".join(old_packages - new_packages) + "\n"227        utils.open_write_close(removed_path, removed_packages)228    @log.log_and_ignore_errors("pre-test siteration sysinfo error:")229    def log_before_each_iteration(self, test, iteration=None):230        """ Logging hook called before a test iteration."""231        if not iteration:232            iteration = test.iteration233        logdir = self._get_iteration_subdir(test, iteration)234        for log in self.before_iteration_loggables:235            log.run(logdir)236    @log.log_and_ignore_errors("post-test siteration sysinfo error:")237    def log_after_each_iteration(self, test, iteration=None):238        """ Logging hook called after a test iteration."""239        if not iteration:240            iteration = test.iteration241        logdir = self._get_iteration_subdir(test, iteration)242        for log in self.after_iteration_loggables:243            log.run(logdir)244    def _log_messages(self, logdir):245        """ Log all of the new data in /var/log/messages. """246        try:247            # log all of the new data in /var/log/messages248            bytes_to_skip = 0249            if hasattr(self, "_messages_size"):250                current_inode = os.stat("/var/log/messages").st_ino251                if current_inode == self._messages_inode:252                    bytes_to_skip = self._messages_size253            in_messages = open("/var/log/messages")254            in_messages.seek(bytes_to_skip)255            out_messages = open(os.path.join(logdir, "messages"), "w")...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!!
