Best Python code snippet using avocado_python
dmesg.py
Source:dmesg.py
...42 @wraps(func)43 def wrapper(*args, **kwargs):44 try:45 data = func(*args, **kwargs)46 collect_errors_by_level(level_check=level)47 return data48 except DmesgError as details:49 raise TestFail(repr(details)) from details50 return wrapper51 for key, value in list(vars(cls).items()):52 if callable(value) and value.__name__.startswith('test'):53 setattr(cls, key, raise_dmesg_fail(value))54 return cls55 return dmesg_fail56def clear_dmesg():57 """function clear dmesg.58 The dmesg operation is a privileged user task.59 This function needs sudo permissions enabled on the target host60 """61 cmd = "dmesg -c"62 status = process.system(cmd, timeout=30, ignore_status=True,63 verbose=False, shell=True, sudo=True)64 if status:65 raise DmesgError(66 "Unable to clear dmesg as some issue while clearing")67def collect_dmesg(output_file=None):68 """Function collect dmesg and save in file.69 The dmesg operation is a privileged user task.70 This function needs sudo permissions enabled on the target host71 :param output_file: File use for save dmesg output if not provided it use72 tmp file which located in system /tmp path73 :type output_file: str74 :returns: file which contain dmesg75 :rtype: str76 """77 if output_file is None:78 _, output_file = tempfile.mkstemp(suffix=".-%s" % time.strftime("%Y-%m-%d:%H:%M:%S"),79 dir=tempfile.gettempdir())80 dmesg = process.system_output(81 "dmesg", ignore_status=True, sudo=True).decode()82 genio.write_file(output_file, dmesg)83 if not os.path.isfile(output_file):84 raise DmesgError("{} is not a valid file.".format(output_file))85 return output_file86def collect_errors_dmesg(patterns):87 """Check patterns in dmesg.88 :param patterns : list variable to search in dmesg89 :returns: error log in form of list90 :rtype: list of str91 """92 error = []93 dmesg_log_file = collect_dmesg(None)94 for fail_pattern in patterns:95 for log in genio.read_file(dmesg_log_file).splitlines():96 if fail_pattern in log:97 error.append(log)98 return error99def collect_errors_by_level(output_file=None, level_check=5, skip_errors=None):100 """Verify dmesg having severity level of OS issue(s).101 :param output_file: The file used to save dmesg102 :type output_file: str103 :param level_check: level of severity of issues to be checked104 1 - emerg105 2 - emerg,alert106 3 - emerg,alert,crit107 4 - emerg,alert,crit,err108 5 - emerg,alert,crit,err,warn109 :type level_check: int110 :skip_errors: list of dmesg error messages which want skip111 :type skip_errors: list112 """113 if not isinstance(level_check, int):...
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!!