Пример #1
0
 def from_call(
     cls,
     func: "Callable[[], TResult]",
     when: "Literal['collect', 'setup', 'call', 'teardown']",
     reraise: Optional[Union[Type[BaseException], Tuple[Type[BaseException],
                                                        ...]]] = None,
 ) -> "CallInfo[TResult]":
     excinfo = None
     start = timing.time()
     precise_start = timing.perf_counter()
     try:
         result: Optional[TResult] = func()
     except BaseException:
         excinfo = ExceptionInfo.from_current()
         if reraise is not None and isinstance(excinfo.value, reraise):
             raise
         result = None
     # use the perf counter
     precise_stop = timing.perf_counter()
     duration = precise_stop - precise_start
     stop = timing.time()
     return cls(
         start=start,
         stop=stop,
         duration=duration,
         when=when,
         result=result,
         excinfo=excinfo,
     )
Пример #2
0
 def from_call(cls, func, when, reraise=None) -> "CallInfo":
     #: context of invocation: one of "setup", "call",
     #: "teardown", "memocollect"
     excinfo = None
     start = timing.time()
     precise_start = timing.perf_counter()
     try:
         result = func()
     except BaseException:
         excinfo = ExceptionInfo.from_current()
         if reraise is not None and excinfo.errisinstance(reraise):
             raise
         result = None
     # use the perf counter
     precise_stop = timing.perf_counter()
     duration = precise_stop - precise_start
     stop = timing.time()
     return cls(
         start=start,
         stop=stop,
         duration=duration,
         when=when,
         result=result,
         excinfo=excinfo,
     )
Пример #3
0
    def from_call(
        cls,
        func: "Callable[[], TResult]",
        when: "Literal['collect', 'setup', 'call', 'teardown']",
        reraise: Optional[
            Union[Type[BaseException], Tuple[Type[BaseException], ...]]
        ] = None,
    ) -> "CallInfo[TResult]":
        """Call func, wrapping the result in a CallInfo.

        :param func:
            The function to call. Called without arguments.
        :param when:
            The phase in which the function is called.
        :param reraise:
            Exception or exceptions that shall propagate if raised by the
            function, instead of being wrapped in the CallInfo.
        """
        excinfo = None
        start = timing.time()
        precise_start = timing.perf_counter()
        try:
            result: Optional[TResult] = func()
        except BaseException:
            excinfo = ExceptionInfo.from_current()
            if reraise is not None and isinstance(excinfo.value, reraise):
                raise
            result = None
        # use the perf counter
        precise_stop = timing.perf_counter()
        duration = precise_stop - precise_start
        stop = timing.time()
        return cls(
            start=start,
            stop=stop,
            duration=duration,
            when=when,
            result=result,
            excinfo=excinfo,
            _ispytest=True,
        )