示例#1
0
    def _open_base(self):
        if self.configure.is_disabled:
            logger.debug("open_base(): ignored (disabled)")
            return
        logger.open_()
        self._log_open_base()

        retry = 0
        while retry < self._MAX_ITERATIONS:
            try:
                self._validate_session_open()
                self._init_providers()

                self._is_viewport_size_set = False

                self._before_open()
                try:
                    if self.configure.viewport_size:
                        self._ensure_running_session()
                except Exception as e:
                    logger.exception(e)
                    retry += 1
                    continue

                self._is_opened = True
                self._after_open()
                return None
            except EyesError as e:
                logger.exception(e)
                logger.close()
                raise e

        raise EyesError("eyes.open_base() failed")
示例#2
0
    def abort(self):
        # type: () -> Optional[TestResults]
        """
        If a test is running, aborts it. Otherwise, does nothing.
        """
        if self.configure.is_disabled:
            logger.debug("abort(): ignored (disabled)")
            return
        try:
            self._reset_last_screenshot()

            if self._running_session:
                results_url = self._running_session.url

                logger.debug("abort(): Aborting session...")
                try:
                    logger.info(
                        "--- Test aborted. \n\tSee details at {}".format(
                            results_url))
                    results = self._server_connector.stop_session(
                        self._running_session, True, False)
                    results.url = results_url
                    return results
                except EyesError as e:
                    logger.info("Failed to abort server session: %s " % e)
                    pass
                finally:
                    self._running_session = None
        finally:
            logger.close()
示例#3
0
    def abort(self):
        # type: () -> None
        """
        If a test is running, aborts it. Otherwise, does nothing.
        """
        if self.configuration.is_disabled:
            logger.debug("abort(): ignored (disabled)")
            return
        try:
            self._reset_last_screenshot()

            if self._running_session:
                logger.debug("abort(): Aborting session...")
                try:
                    self._server_connector.stop_session(
                        self._running_session, True, False
                    )
                    logger.info("--- Test aborted.")
                except EyesError as e:
                    logger.info("Failed to abort server session: %s " % e)
                    pass
                finally:
                    self._running_session = None
        finally:
            logger.close()
示例#4
0
 def get_all_test_results(self, should_raise_exception=True):
     # type: (bool) -> TestResultsSummary
     logger.debug(
         "get_all_test_results({}) called".format(should_raise_exception))
     summary = self._get_all_test_results_impl(should_raise_exception)
     logger.debug(str(summary))
     logger.close()
     return summary
示例#5
0
def manage_logging(enable_eyes_log=None, enable_http_debug_log=None):

    if enable_eyes_log is True:
        logger.set_logger(StdoutLogger())
        logger.open_()
    elif enable_eyes_log is False:
        logger.close()
        logger.set_logger(None)

    if enable_http_debug_log is True:
        six.moves.http_client.HTTPConnection.debuglevel = 1
    elif enable_http_debug_log is False:
        six.moves.http_client.HTTPConnection.debuglevel = 0
示例#6
0
    def close(self, raise_ex=True):
        # type: (bool) -> Optional[TestResults]
        """
        Ends the test.

        :param raise_ex: If true, an exception will be raised for failed/new tests.
        :return: The test results.
        """
        if self.configure.is_disabled:
            logger.debug("close(): ignored (disabled)")
            return None
        try:
            logger.debug("close({})".format(raise_ex))
            if not self._is_opened:
                raise EyesError("Eyes not open")

            self._is_opened = False

            self._reset_last_screenshot()
            self._init_providers(hard_reset=True)

            # If there's no running session, we simply return the default test results.
            if not self._running_session:
                logger.debug("close(): Server session was not started")
                logger.info("close(): --- Empty test ended.")
                return TestResults()

            is_new_session = self._running_session.is_new_session
            results_url = self._running_session.url

            logger.info("close(): Ending server session...")
            should_save = (is_new_session
                           and self.configure.save_new_tests) or (
                               (not is_new_session)
                               and self.configure.save_failed_tests)
            logger.debug("close(): automatically save session? %s" %
                         should_save)
            results = self._server_connector.stop_session(
                self._running_session, False, should_save)
            results.is_new = is_new_session
            results.url = results_url
            self.log_session_results_and_raise_exception(raise_ex, results)

            return results
        finally:
            self._running_session = None
            logger.close()