This is an automated email from the ASF dual-hosted git repository. ivandasch pushed a commit to branch pyignite-0.6.1 in repository https://gitbox.apache.org/repos/asf/ignite-python-thin-client.git
commit da37d86016f0aeee82a410a496a794d3884e534c Author: Ivan Daschinskiy <[email protected]> AuthorDate: Tue Feb 14 13:27:20 2023 +0300 IGNITE-18788 Fix firing query events only if debug level logger enabled. (#62) (cherry picked from commit b32131b28bc83d96d60ec2f0090a5958fd87ed53) --- .github/workflows/pr_check.yml | 4 ++-- pyignite/queries/query.py | 29 +++++++++++++++-------------- tests/common/test_query_listener.py | 12 ++++++++++++ tox.ini | 6 ++++-- 4 files changed, 33 insertions(+), 18 deletions(-) diff --git a/.github/workflows/pr_check.yml b/.github/workflows/pr_check.yml index 2330e1d..8ceefb7 100644 --- a/.github/workflows/pr_check.yml +++ b/.github/workflows/pr_check.yml @@ -42,7 +42,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v4 + uses: actions/[email protected] with: python-version: ${{ matrix.cfg.python}} - name: Install Apache Ignite @@ -54,7 +54,7 @@ jobs: - name: Install tox run: | - pip install tox + pip install tox==3.28.0 - name: Run tests run: | diff --git a/pyignite/queries/query.py b/pyignite/queries/query.py index c141b26..6ac16d8 100644 --- a/pyignite/queries/query.py +++ b/pyignite/queries/query.py @@ -247,26 +247,27 @@ class Query: self.op_code, _get_op_code_name(self.op_code)) def _on_query_finished(self, conn, result=None, err=None): - if logger.isEnabledFor(logging.DEBUG): - dur_ms = _sec_to_millis(time.monotonic() - self._start_ts) - if result and result.status != 0: - err = result.message - if err: + dur_ms = _sec_to_millis(time.monotonic() - self._start_ts) + if result and result.status != 0: + err = result.message + if err: + if logger.isEnabledFor(logging.DEBUG): logger.debug("Failed to perform query(query_id=%d, op_type=%s, host=%s, port=%d, node_id=%s) " "in %d ms: %s", self.query_id, _get_op_code_name(self.op_code), conn.host, conn.port, conn.uuid, dur_ms, err) - if self._enabled_query_listener(conn): - self._event_listener(conn).publish_query_fail(conn.host, conn.port, conn.uuid, self.query_id, - self.op_code, _get_op_code_name(self.op_code), - dur_ms, err) - else: + if self._enabled_query_listener(conn): + self._event_listener(conn).publish_query_fail(conn.host, conn.port, conn.uuid, self.query_id, + self.op_code, _get_op_code_name(self.op_code), + dur_ms, err) + else: + if logger.isEnabledFor(logging.DEBUG): logger.debug("Finished query(query_id=%d, op_type=%s, host=%s, port=%d, node_id=%s) " "successfully in %d ms", self.query_id, _get_op_code_name(self.op_code), conn.host, conn.port, conn.uuid, dur_ms) - if self._enabled_query_listener(conn): - self._event_listener(conn).publish_query_success(conn.host, conn.port, conn.uuid, self.query_id, - self.op_code, _get_op_code_name(self.op_code), - dur_ms) + if self._enabled_query_listener(conn): + self._event_listener(conn).publish_query_success(conn.host, conn.port, conn.uuid, self.query_id, + self.op_code, _get_op_code_name(self.op_code), + dur_ms) class ConfigQuery(Query): diff --git a/tests/common/test_query_listener.py b/tests/common/test_query_listener.py index 8310117..85d1550 100644 --- a/tests/common/test_query_listener.py +++ b/tests/common/test_query_listener.py @@ -36,6 +36,18 @@ class QueryRouteListener(QueryEventListener): events.append(event) [email protected](autouse=True) +def setup_logger(): + from pyignite.queries.query import logger + + try: + # Disable logger in order to test events with disabled debug logging. + logger.disabled = True + yield logger + finally: + logger.disabled = False + + @pytest.fixture def client(): client = Client(event_listeners=[QueryRouteListener()]) diff --git a/tox.ini b/tox.ini index d68f02e..2fe65b4 100644 --- a/tox.ini +++ b/tox.ini @@ -29,11 +29,13 @@ max-line-length=120 ignore = F401,F403,F405,F821 [testenv:codestyle] -basepython = python3.8 +basepython = python3.11 commands = flake8 [testenv] -passenv = TEAMCITY_VERSION IGNITE_HOME +passenv = + TEAMCITY_VERSION + IGNITE_HOME envdir = {homedir}/.virtualenvs/pyignite-{envname} deps = -r ./requirements/install.txt
