Skip to content

Commit 56771f0

Browse files
committed
Fixed minor issues. Attempt to get coverage back to 100% using # pragma no cover.
1 parent 2316261 commit 56771f0

File tree

3 files changed

+22
-16
lines changed

3 files changed

+22
-16
lines changed

docs/signals.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ is reached instead, ``args`` will be ``None``.
117117
Getting all arguments of non-matching arguments
118118
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
119119

120-
.. versionadded:: 2.0
120+
.. versionadded:: 2.1
121121

122122
When using the ``check_params_cb`` parameter, it may happen that the provided signal is received multiple times with
123123
different parameter values, which may or may not match the requirements of the callback.

pytestqt/wait_signal.py

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -58,15 +58,15 @@ def _quit_loop_by_timeout(self):
5858

5959
def _cleanup(self):
6060
# store timeout message before the data to construct it is lost
61-
self._timeout_message = self.get_timeout_error_message()
61+
self._timeout_message = self._get_timeout_error_message()
6262
if self._timer is not None:
6363
_silent_disconnect(self._timer.timeout, self._quit_loop_by_timeout)
6464
self._timer.stop()
6565
self._timer = None
6666

67-
def get_timeout_error_message(self):
67+
def _get_timeout_error_message(self):
6868
"""Subclasses have to implement this, returning an appropriate error message for a SignalTimeoutError."""
69-
raise NotImplementedError
69+
raise NotImplementedError # pragma: no cover
7070

7171
def _extract_pyqt_signal_name(self, potential_pyqt_signal):
7272
signal_name = potential_pyqt_signal.signal # type: str
@@ -84,9 +84,11 @@ def _extract_signal_from_signal_tuple(self, potential_signal_tuple):
8484
"the second element is the signal's name).")
8585
signal_tuple = potential_signal_tuple
8686
signal_name = signal_tuple[1]
87-
if not isinstance(signal_name, str) or not signal_name:
88-
raise TypeError("Invalid type for user-provided signal name, "
87+
if not isinstance(signal_name, str):
88+
raise TypeError("Invalid type for provided signal name, "
8989
"expected str but got {}".format(type(signal_name)))
90+
if not signal_name:
91+
raise ValueError("The provided signal name may not be empty")
9092
return signal_name
9193
return ""
9294

@@ -226,7 +228,7 @@ def get_params_as_str(self):
226228

227229
return str(args_list)
228230

229-
def get_timeout_error_message(self):
231+
def _get_timeout_error_message(self):
230232
if self.check_params_callback is not None:
231233
return ("Signal {signal_name} emitted with parameters {params} "
232234
"within {timeout} ms, but did not satisfy "
@@ -267,6 +269,10 @@ def __eq__(self, other):
267269
get_ordinal_str = lambda n: "%d%s" % (n, {1: "st", 2: "nd", 3: "rd"}.get(n if n < 20 else n % 10, "th"))
268270

269271

272+
class NoMatchingIndexFoundError(Exception):
273+
pass
274+
275+
270276
class MultiSignalBlocker(_AbstractSignalBlocker):
271277
"""
272278
Returned by :meth:`pytestqt.qtbot.QtBot.waitSignals` method, blocks until
@@ -305,7 +311,7 @@ def add_signals(self, signals):
305311
self._create_signal_emitted_indices(signals)
306312
self._connect_unique_signals()
307313

308-
def get_timeout_error_message(self):
314+
def _get_timeout_error_message(self):
309315
if not self._are_signal_names_available():
310316
error_message = self._get_degenerate_error_message()
311317
else:
@@ -381,7 +387,7 @@ def _check_signal_match(self, unique_signal, *args):
381387
try:
382388
successful_index = self._get_first_matching_index(unique_signal, *args)
383389
self._signals_emitted[successful_index] = True
384-
except: # none found
390+
except NoMatchingIndexFoundError: # none found
385391
pass
386392
elif self._order == "simple":
387393
if self._check_signal_matches_expected_index(unique_signal, *args):
@@ -413,7 +419,7 @@ def _get_first_matching_index(self, unique_signal, *args):
413419
successfully_emitted = True
414420
break
415421
if not successfully_emitted:
416-
raise Exception("No matching index was found")
422+
raise NoMatchingIndexFoundError
417423

418424
return successful_index
419425

@@ -476,9 +482,9 @@ def _get_order_violation_message(self):
476482
expected_signal_as_str = self._get_signal_string_representation_for_index(self._signal_expected_index)
477483
actual_signal_as_str = str(self._actual_signal_and_args_at_violation)
478484
return ("Signal order violated! Expected {expected} as {ordinal} signal, "
479-
"but received {actual} instead. ").format(expected=expected_signal_as_str,
480-
ordinal=get_ordinal_str(self._signal_expected_index + 1),
481-
actual=actual_signal_as_str)
485+
"but received {actual} instead. ").format(expected=expected_signal_as_str,
486+
ordinal=get_ordinal_str(self._signal_expected_index + 1),
487+
actual=actual_signal_as_str)
482488

483489
def _get_missing_signal_indices(self):
484490
return [index for index, value in enumerate(self._signals_emitted) if not self._signals_emitted[index]]

tests/test_wait_signal.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -429,14 +429,14 @@ def test_invalid_signal_tuple_length(qtbot, signaller):
429429

430430

431431
def test_provided_empty_signal_name(qtbot, signaller):
432-
"""Test that a TypeError is raised when providing a signal+name tuple where the name is an empty string."""
433-
with pytest.raises(TypeError):
432+
"""Test that a ValueError is raised when providing a signal+name tuple where the name is an empty string."""
433+
with pytest.raises(ValueError):
434434
invalid_signal_tuple = (signaller.signal, "")
435435
with qtbot.waitSignal(signal=invalid_signal_tuple, raising=False):
436436
pass
437437

438438

439-
def test_provided_invalid_signal_name(qtbot, signaller):
439+
def test_provided_invalid_signal_name_type(qtbot, signaller):
440440
"""Test that a TypeError is raised when providing a signal+name tuple where the name is not actually string."""
441441
with pytest.raises(TypeError):
442442
invalid_signal_tuple = (signaller.signal, 12345) # 12345 is not a signal name

0 commit comments

Comments
 (0)