Best Python code snippet using lisa_python
testsuite.py
Source:testsuite.py  
...562        timer = create_timer()563        method_name = method.__name__564        stacktrace: Optional[str] = None565        try:566            self.__call_with_retry_and_timeout(567                method,568                retries=0,569                timeout=3600,570                log=log,571                test_kwargs=test_kwargs,572            )573        except Exception as identifier:574            result = False575            message = f"{method_name}: {identifier}"576            stacktrace = traceback.format_exc()577        log.debug(f"{method_name} end in {timer}")578        return result, message, stacktrace579    def __before_case(580        self,581        case_result: TestResult,582        timeout: int,583        test_kwargs: Dict[str, Any],584        log: Logger,585    ) -> bool:586        result: bool = True587        timer = create_timer()588        try:589            self.__call_with_retry_and_timeout(590                self.before_case,591                retries=case_result.runtime_data.retry,592                timeout=timeout,593                log=log,594                test_kwargs=test_kwargs,595            )596        except Exception as identifier:597            log.error("before_case: ", exc_info=identifier)598            case_result.stacktrace = traceback.format_exc()599            case_result.set_status(TestStatus.SKIPPED, f"before_case: {identifier}")600            result = False601        log.debug(f"before_case end in {timer}")602        return result603    def __after_case(604        self,605        case_result: TestResult,606        timeout: int,607        test_kwargs: Dict[str, Any],608        log: Logger,609    ) -> None:610        timer = create_timer()611        try:612            self.__call_with_retry_and_timeout(613                self.after_case,614                retries=case_result.runtime_data.retry,615                timeout=timeout,616                log=log,617                test_kwargs=test_kwargs,618            )619        except Exception as identifier:620            # after case doesn't impact test case result.621            log.error("after_case failed", exc_info=identifier)622        log.debug(f"after_case end in {timer}")623    def __run_case(624        self,625        case_result: TestResult,626        timeout: int,627        test_kwargs: Dict[str, Any],628        log: Logger,629    ) -> None:630        timer = create_timer()631        case_name = case_result.runtime_data.name632        test_method = getattr(self, case_name)633        try:634            self.__call_with_retry_and_timeout(635                test_method,636                retries=case_result.runtime_data.retry,637                timeout=timeout,638                log=log,639                test_kwargs=test_kwargs,640            )641            case_result.set_status(TestStatus.PASSED, "")642        except Exception as identifier:643            case_result.handle_exception(exception=identifier, log=log)644        log.debug(f"case end in {timer}")645    def __call_with_retry_and_timeout(646        self,647        method: Callable[..., Any],648        retries: int,649        timeout: int,650        log: Logger,651        test_kwargs: Dict[str, Any],652    ) -> None:653        try:654            retry_call(655                func_timeout,656                fkwargs={657                    "timeout": timeout,658                    "func": method,659                    "kwargs": test_kwargs,...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!!
