"""atfutils module contains general purpose wrappers *) assert_success *) assert_failure *) print-stdout *) print_stderr *) set_active_volume """ import re import ssh from atfglobals import GlobalObj def assert_success(**arguments): """ """ if not arguments["exitstatus"]: return 0 else: return 1 def assert_failure(**arguments): """ """ if arguments["exitstatus"]: return 0 else: return 1 def expect(actual_string, expected_string): """ """ escaped_pattern = re.escape(expected_string) new_pattern = re.compile(escaped_pattern, re.IGNORECASE) matched = False if not expected_string: matched = True else: if re.search(new_pattern, actual_string): matched = True return matched def validate_output(output, expected_exit_status, expected_output): """ Parameters: output: This is dictionary which is return value of executecommand(ssh module) expected_exit_status: exit_status we are expecting expected_output : output expected from the execution of command Returns: True: if output we got from the command execution matches with expected_exit_status and expected_output is False: if output doesn't match with expected_exit_status or expected_output """ if expected_exit_status is not 0: exit_status = assert_failure(**output) else: exit_status = assert_success(**output) output_status = expect(str(output['stdoutdata']), expected_output) if output_status is True and (not exit_status): return 0 else: return 1 def print_stdout(stdoutdata): """ """ logger = GlobalObj.getLoggerObj() if not stdoutdata == None: for data in stdoutdata: logger.debug(data) def print_stderr(stderrdata): logger = GlobalObj.getLoggerObj() if not stderrdata == None: for data in stderrdata: logger.debug(data) def set_active_volume(volumekey): """ """ logger = GlobalObj.getLoggerObj() env = GlobalObj.getTestenvObj() return_status = env.setActiveVolume(volumekey) if return_status: logger.error("Unable to set Active Volume. \ '%s' Not defined in TestEnvironment" % volumekey ) return return_status __all__ = ['assert_success', 'assert_failure', 'print-stdout', 'print_stderr', 'set_active_volume']