import pytest import subprocess import pathlib from plugins.agl_test_base import AGLBaseTest class LinusStressBase(AGLBaseTest): def __init__(self): super().__init__(name="linus_stress") def run_test_fun(self): log_file = self.get_logfile() cwd_buf = self.get_temp_logdir() workdir = self.get_workdir() run_test_cmd = workdir + '/linus_stress' with open(log_file, 'w') as log_f: output = subprocess.run(run_test_cmd, shell=True, cwd=cwd_buf, stdout=log_f, stderr=log_f) log_f.close() if (output.returncode == 0): self.case_info_list = {'test_linus_stress': ['test_linus_stress', '', 'passed']} else: self.case_info_list = {'test_linus_stress': ['test_linus_stress', '', 'failed']} def precheck(self): test_location = self.get_workdir() + "/linus_stress" pathObj = pathlib.Path(test_location) return super().precheck() and pathObj.is_file() @pytest.fixture(scope='module') def testbase(): #init instance for test instance = LinusStressBase() yield instance #package log files and make report file instance.log_report() def precheck(): instance = LinusStressBase() return instance.precheck() skip_msg = "The current environment does not match the test requirements." pytestmark = pytest.mark.skipif(precheck() == False, reason = skip_msg) def test_linus_stress(testbase: LinusStressBase): testbase.run_test_fun() assert testbase.case_info_list['test_linus_stress'][2] == 'passed' if __name__ == '__main__': pytest.main("-s run_tests")