Skip to content

Commit 9e19449

Browse files
authored
Merge pull request #1923 from dbcli/RW/improve-test-coverage-completion-refresher-py
100% test coverage for `completion_refresher.py`
2 parents 1e16b00 + 3ee62ed commit 9e19449

2 files changed

Lines changed: 32 additions & 0 deletions

File tree

changelog.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
Upcoming (TBD)
2+
==============
3+
4+
Internal
5+
--------
6+
* Improve test coverage for `completion_refresher.py`.
7+
8+
19
1.74.0 (2026/06/06)
210
==============
311

test/pytests/test_completion_refresher.py

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,30 @@ def close(self) -> None:
327327
callback.assert_called_once_with(completers[0])
328328

329329

330+
def test_bg_refresh_returns_when_executor_connection_fails(monkeypatch, refresher) -> None:
331+
completers: list[object] = []
332+
callback = Mock()
333+
refresh = Mock()
334+
335+
class FakeCompleter:
336+
def __init__(self, **options) -> None:
337+
completers.append(self)
338+
339+
class FailingExecutor:
340+
def __init__(self, *args) -> None:
341+
raise completion_refresher.pymysql.err.OperationalError(2003, 'cannot connect')
342+
343+
monkeypatch.setattr(completion_refresher, 'SQLCompleter', FakeCompleter)
344+
monkeypatch.setattr(completion_refresher, 'SQLExecute', FailingExecutor)
345+
refresher.refreshers = {'refresh': refresh}
346+
347+
refresher._bg_refresh(make_sqlexecute(), callback, {})
348+
349+
assert len(completers) == 1
350+
refresh.assert_not_called()
351+
callback.assert_not_called()
352+
353+
330354
def test_refresher_decorator_registers_function() -> None:
331355
refreshers: dict[str, object] = {}
332356

0 commit comments

Comments
 (0)