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

Reply via email to