Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 661662 Details for
Bug 743790
dev-python/pytest-qt-3.3.0 fails tests
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
build.log
build.log (text/plain), 441.99 KB, created by
Agostino Sarubbo
on 2020-09-20 16:41:23 UTC
(
hide
)
Description:
build.log
Filename:
MIME Type:
Creator:
Agostino Sarubbo
Created:
2020-09-20 16:41:23 UTC
Size:
441.99 KB
patch
obsolete
> * Package: dev-python/pytest-qt-3.3.0 > * Repository: gentoo > * Maintainer: andrewammerlaan@riseup.net proxy-maint@gentoo.org > * USE: abi_x86_64 amd64 elibc_glibc kernel_linux python_targets_python3_6 python_targets_python3_7 python_targets_python3_8 python_targets_python3_9 test userland_GNU > * FEATURES: network-sandbox preserve-libs sandbox test userpriv usersandbox > > >@@@@@ PLEASE PAY ATTENTION HERE!!! @@@@@ >This information may help you to understand if this is a duplicate or if this bug exists after you pushed a fix; >This ebuild was merged at the following commit: >https://github.com/gentoo-mirror/gentoo/commit/d57fef748f4c651a251954b2ce766d957a636650 (Sun Sep 20 09:35:32 UTC 2020) >@@@@@ END @@@@@ > > > >emerge --info: >Portage 3.0.7 (python 3.8.5-final-0, default/linux/amd64/17.1, gcc-10.2.0, glibc-2.32-r1, 5.4.0-1021-aws x86_64) >================================================================= >System uname: Linux-5.4.0-1021-aws-x86_64-Intel-R-_Xeon-R-_Platinum_8175M_CPU_@_2.50GHz-with-glibc2.2.5 >KiB Mem: 64359960 total, 18256840 free >KiB Swap: 0 total, 0 free >Timestamp of repository gentoo: Sun, 20 Sep 2020 09:35:31 +0000 >sh bash 5.0_p18 >ld GNU ld (Gentoo 2.34 p6) 2.34.0 >app-shells/bash: 5.0_p18::gentoo >dev-lang/perl: 5.30.3-r1::gentoo >dev-lang/python: 2.7.18-r3::gentoo, 3.6.12::gentoo, 3.7.9::gentoo, 3.8.5::gentoo, 3.9.0_rc2::gentoo >dev-util/cmake: 3.18.2::gentoo >sys-apps/baselayout: 2.7::gentoo >sys-apps/openrc: 0.42.1::gentoo >sys-apps/sandbox: 2.20::gentoo >sys-devel/autoconf: 2.13-r1::gentoo, 2.69-r5::gentoo >sys-devel/automake: 1.16.2::gentoo >sys-devel/binutils: 2.34-r2::gentoo >sys-devel/gcc: 10.2.0-r1::gentoo >sys-devel/gcc-config: 2.3.2::gentoo >sys-devel/libtool: 2.4.6-r6::gentoo >sys-devel/make: 4.3::gentoo >sys-kernel/linux-headers: 5.8::gentoo (virtual/os-headers) >sys-libs/glibc: 2.32-r1::gentoo >Repositories: > >gentoo > location: /usr/portage > sync-type: rsync > sync-uri: rsync://rsync.gentoo.org/gentoo-portage > priority: -1000 > sync-rsync-verify-jobs: 1 > sync-rsync-extra-opts: > sync-rsync-verify-metamanifest: yes > sync-rsync-verify-max-age: 24 > >ACCEPT_KEYWORDS="amd64 ~amd64" >ACCEPT_LICENSE="* MIT" >CBUILD="x86_64-pc-linux-gnu" >CC="x86_64-pc-linux-gnu-clang" >CFLAGS="-O2 -pipe -march=native -frecord-gcc-switches -fno-diagnostics-color" >CHOST="x86_64-pc-linux-gnu" >CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt" >CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" >CXX="x86_64-pc-linux-gnu-clang++" >CXXFLAGS="-O2 -pipe -march=native -frecord-gcc-switches -fno-diagnostics-color" >DISTDIR="/var/tmp/portage/dev-python/pytest-qt-3.3.0/distdir" >EMERGE_DEFAULT_OPTS="--with-bdeps=y -1 -b -k" >ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR" >FCFLAGS="-O2 -pipe -march=native -frecord-gcc-switches -fno-diagnostics-color" >FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs buildpkg config-protect-if-modified distlocks ebuild-locks fixlafiles ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms sign split-log strict test unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr" >FFLAGS="-O2 -pipe -march=native -frecord-gcc-switches -fno-diagnostics-color" >GENTOO_MIRRORS="http://distfiles.gentoo.org" >LANG="C.UTF-8" >LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--defsym=__gentoo_check_ldflags__=0 -fuse-ld=lld" >MAKEOPTS="-j16 V=1" >PKGDIR="/root/.packages" >PORTAGE_CONFIGROOT="/" >PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --exclude=/.git" >PORTAGE_TMPDIR="/var/tmp" >USE="acl amd64 berkdb bzip2 cli crypt dri elogind fortran gdbm iconv ipv6 jumbo-build libglvnd libtirpc multilib native-symlinks ncurses nls nptl openmp pam pcre readline seccomp split-usr ssl tcpd test unicode xattr zlib" ABI_X86="64" ELIBC="glibc" KERNEL="linux" PYTHON_TARGETS="python3_6 python3_7 python3_8 python3_9" USERLAND="GNU" >Unset: CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, LINGUAS, PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS > > > >>>> Unpacking source... >>>> Unpacking pytest-qt-3.3.0.tar.gz to /var/tmp/portage/dev-python/pytest-qt-3.3.0/work >>>> Source unpacked in /var/tmp/portage/dev-python/pytest-qt-3.3.0/work >>>> Preparing source in /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0 ... > * Applying pytest-qt-3.3.0-skip-show-window-test.patch ... > [ ok ] > * Applying pytest-qt-3.3.0-fix-file-match-test.patch ... > [ ok ] >>>> Source prepared. >>>> Configuring source in /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0 ... >>>> Source configured. >>>> Compiling source in /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0 ... > * python3_6: running distutils-r1_run_phase distutils-r1_python_compile >python3.6 setup.py build -j 16 >running build >running build_py >creating /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_6/lib/pytestqt >copying pytestqt/__init__.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_6/lib/pytestqt >copying pytestqt/qt_compat.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_6/lib/pytestqt >copying pytestqt/wait_signal.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_6/lib/pytestqt >copying pytestqt/_version.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_6/lib/pytestqt >copying pytestqt/utils.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_6/lib/pytestqt >copying pytestqt/modeltest.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_6/lib/pytestqt >copying pytestqt/exceptions.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_6/lib/pytestqt >copying pytestqt/logging.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_6/lib/pytestqt >copying pytestqt/plugin.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_6/lib/pytestqt >copying pytestqt/qtbot.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_6/lib/pytestqt >warning: build_py: byte-compiling is disabled, skipping. > > * python3_7: running distutils-r1_run_phase distutils-r1_python_compile >python3.7 setup.py build -j 16 >running build >running build_py >creating /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_7/lib/pytestqt >copying pytestqt/__init__.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_7/lib/pytestqt >copying pytestqt/qt_compat.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_7/lib/pytestqt >copying pytestqt/wait_signal.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_7/lib/pytestqt >copying pytestqt/_version.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_7/lib/pytestqt >copying pytestqt/utils.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_7/lib/pytestqt >copying pytestqt/modeltest.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_7/lib/pytestqt >copying pytestqt/exceptions.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_7/lib/pytestqt >copying pytestqt/logging.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_7/lib/pytestqt >copying pytestqt/plugin.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_7/lib/pytestqt >copying pytestqt/qtbot.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_7/lib/pytestqt >warning: build_py: byte-compiling is disabled, skipping. > > * python3_8: running distutils-r1_run_phase distutils-r1_python_compile >python3.8 setup.py build -j 16 >running build >running build_py >creating /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_8/lib/pytestqt >copying pytestqt/__init__.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_8/lib/pytestqt >copying pytestqt/qt_compat.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_8/lib/pytestqt >copying pytestqt/wait_signal.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_8/lib/pytestqt >copying pytestqt/_version.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_8/lib/pytestqt >copying pytestqt/utils.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_8/lib/pytestqt >copying pytestqt/modeltest.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_8/lib/pytestqt >copying pytestqt/exceptions.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_8/lib/pytestqt >copying pytestqt/logging.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_8/lib/pytestqt >copying pytestqt/plugin.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_8/lib/pytestqt >copying pytestqt/qtbot.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_8/lib/pytestqt >warning: build_py: byte-compiling is disabled, skipping. > > * python3_9: running distutils-r1_run_phase distutils-r1_python_compile >python3.9 setup.py build -j 16 >running build >running build_py >creating /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_9/lib/pytestqt >copying pytestqt/__init__.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_9/lib/pytestqt >copying pytestqt/qt_compat.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_9/lib/pytestqt >copying pytestqt/wait_signal.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_9/lib/pytestqt >copying pytestqt/_version.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_9/lib/pytestqt >copying pytestqt/utils.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_9/lib/pytestqt >copying pytestqt/modeltest.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_9/lib/pytestqt >copying pytestqt/exceptions.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_9/lib/pytestqt >copying pytestqt/logging.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_9/lib/pytestqt >copying pytestqt/plugin.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_9/lib/pytestqt >copying pytestqt/qtbot.py -> /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0-python3_9/lib/pytestqt >warning: build_py: byte-compiling is disabled, skipping. > > * Using python3.9 in global scope > * python3_9: running distutils-r1_run_phase python_compile_all >>>> Source compiled. >>>> Test phase: dev-python/pytest-qt-3.3.0 > * python3_6: running distutils-r1_run_phase python_test > * Scanning for an open DISPLAY to start Xvfb ... > * Starting Xvfb on $DISPLAY=5 ... >============================= test session starts ============================== >platform linux -- Python 3.6.12, pytest-6.0.2, py-1.9.0, pluggy-0.13.1 -- /usr/bin/python3.6 >cachedir: .pytest_cache >PyQt5 5.15.1 -- Qt runtime 5.15.1 -- Qt compiled 5.15.1 >rootdir: /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0, configfile: setup.cfg, testpaths: tests >plugins: qt-3.3.0 >collecting ... collected 336 items > >tests/test_basics.py::test_basics PASSED [ 0%] >tests/test_basics.py::test_key_events PASSED [ 0%] >tests/test_basics.py::test_mouse_events PASSED [ 0%] >tests/test_basics.py::test_stop_for_interaction PASSED [ 1%] >tests/test_basics.py::test_wait_window_propagates_other_exception[waitExposed] PASSED [ 1%] >tests/test_basics.py::test_wait_window_propagates_other_exception[waitActive] PASSED [ 1%] >tests/test_basics.py::test_widget_kept_as_weakref PASSED [ 2%] >tests/test_basics.py::test_event_processing_before_and_after_teardown PASSED [ 2%] >tests/test_basics.py::test_header PASSED [ 2%] >tests/test_basics.py::test_public_api_backward_compatibility PASSED [ 2%] >tests/test_basics.py::test_qvariant PASSED [ 3%] >tests/test_basics.py::test_widgets_closed_before_fixtures PASSED [ 3%] >tests/test_basics.py::test_qtbot_wait PASSED [ 3%] >tests/test_basics.py::test_parse_ini_boolean_valid[True-True0] PASSED [ 4%] >tests/test_basics.py::test_parse_ini_boolean_valid[False-False0] PASSED [ 4%] >tests/test_basics.py::test_parse_ini_boolean_valid[True-True1] PASSED [ 4%] >tests/test_basics.py::test_parse_ini_boolean_valid[False-False1] PASSED [ 5%] >tests/test_basics.py::test_parse_ini_boolean_valid[true-True] PASSED [ 5%] >tests/test_basics.py::test_parse_ini_boolean_valid[false-False] PASSED [ 5%] >tests/test_basics.py::test_parse_ini_boolean_invalid PASSED [ 5%] >tests/test_basics.py::test_qt_api_ini_config[pyqt4] PASSED [ 6%] >tests/test_basics.py::test_qt_api_ini_config[pyqt5] PASSED [ 6%] >tests/test_basics.py::test_qt_api_ini_config[pyside] PASSED [ 6%] >tests/test_basics.py::test_qt_api_ini_config[pyside2] PASSED [ 7%] >tests/test_basics.py::test_qt_api_ini_config_with_envvar[pyqt4] PASSED [ 7%] >tests/test_basics.py::test_qt_api_ini_config_with_envvar[pyqt5] PASSED [ 7%] >tests/test_basics.py::test_qt_api_ini_config_with_envvar[pyside] PASSED [ 8%] >tests/test_basics.py::test_qt_api_ini_config_with_envvar[pyside2] PASSED [ 8%] >tests/test_basics.py::test_invalid_qt_api_envvar PASSED [ 8%] >tests/test_basics.py::test_qapp_args PASSED [ 8%] >tests/test_basics.py::test_importerror PASSED [ 9%] >tests/test_basics.py::test_before_close_func PASSED [ 9%] >tests/test_exceptions.py::test_catch_exceptions_in_virtual_methods[False] PASSED [ 9%] >tests/test_exceptions.py::test_catch_exceptions_in_virtual_methods[True] PASSED [ 10%] >tests/test_exceptions.py::test_format_captured_exceptions PASSED [ 10%] >tests/test_exceptions.py::test_format_captured_exceptions_chained PASSED [ 10%] >tests/test_exceptions.py::test_no_capture[True] PASSED [ 11%] >tests/test_exceptions.py::test_no_capture[False] PASSED [ 11%] >tests/test_exceptions.py::test_no_capture_preserves_custom_excepthook PASSED [ 11%] >tests/test_exceptions.py::test_exception_capture_on_call PASSED [ 11%] >tests/test_exceptions.py::test_exception_capture_on_widget_close PASSED [ 12%] >tests/test_exceptions.py::test_exception_capture_on_fixture_setup_and_teardown[setup] PASSED [ 12%] >tests/test_exceptions.py::test_exception_capture_on_fixture_setup_and_teardown[teardown] PASSED [ 12%] >tests/test_exceptions.py::test_capture_exceptions_context_manager PASSED [ 13%] >tests/test_exceptions.py::test_capture_exceptions_qtbot_context_manager PASSED [ 13%] >tests/test_exceptions.py::test_exceptions_to_stderr PASSED [ 13%] >tests/test_exceptions.py::test_exceptions_dont_leak PASSED [ 13%] >tests/test_logging.py::test_basic_logging[True-True] PASSED [ 14%] >tests/test_logging.py::test_basic_logging[True-False] PASSED [ 14%] >tests/test_logging.py::test_basic_logging[False-True] PASSED [ 14%] >tests/test_logging.py::test_basic_logging[False-False] PASSED [ 15%] >tests/test_logging.py::test_qinfo PASSED [ 15%] >tests/test_logging.py::test_qtlog_fixture PASSED [ 15%] >tests/test_logging.py::test_fixture_with_logging_disabled PASSED [ 16%] >tests/test_logging.py::test_disable_qtlog_context_manager[True] PASSED [ 16%] >tests/test_logging.py::test_disable_qtlog_context_manager[False] PASSED [ 16%] >tests/test_logging.py::test_disable_qtlog_mark[True] PASSED [ 16%] >tests/test_logging.py::test_disable_qtlog_mark[False] PASSED [ 17%] >tests/test_logging.py::test_logging_formatting PASSED [ 17%] >tests/test_logging.py::test_logging_fails_tests[DEBUG-1] PASSED [ 17%] >tests/test_logging.py::test_logging_fails_tests[WARNING-2] PASSED [ 18%] >tests/test_logging.py::test_logging_fails_tests[CRITICAL-3] PASSED [ 18%] >tests/test_logging.py::test_logging_fails_tests[NO-4] PASSED [ 18%] >tests/test_logging.py::test_logging_fails_tests_mark PASSED [ 19%] >tests/test_logging.py::test_logging_fails_ignore PASSED [ 19%] >tests/test_logging.py::test_logging_mark_with_extend['match-mark', extend=True-match-global] PASSED [ 19%] >tests/test_logging.py::test_logging_mark_with_extend['match-mark', extend=True-match-mark] PASSED [ 19%] >tests/test_logging.py::test_logging_mark_with_extend['match-mark'-match-global] PASSED [ 20%] >tests/test_logging.py::test_logging_mark_with_extend['match-mark'-match-mark] PASSED [ 20%] >tests/test_logging.py::test_logging_mark_without_extend[match-global-True] PASSED [ 20%] >tests/test_logging.py::test_logging_mark_without_extend[match-mark-False] PASSED [ 21%] >tests/test_logging.py::test_logging_mark_with_invalid_argument PASSED [ 21%] >tests/test_logging.py::test_logging_fails_ignore_mark_multiple[True] PASSED [ 21%] >tests/test_logging.py::test_logging_fails_ignore_mark_multiple[False] PASSED [ 22%] >tests/test_logging.py::test_lineno_failure PASSED [ 22%] >tests/test_logging.py::test_context_none PASSED [ 22%] >tests/test_logging.py::test_logging_broken_makereport PASSED [ 22%] >tests/test_modeltest.py::test_standard_item_model PASSED [ 23%] >tests/test_modeltest.py::test_string_list_model PASSED [ 23%] >tests/test_modeltest.py::test_sort_filter_proxy_model PASSED [ 23%] >tests/test_modeltest.py::test_broken_types[3] PASSED [ 24%] >tests/test_modeltest.py::test_broken_types[4] PASSED [ 24%] >tests/test_modeltest.py::test_broken_types[5] PASSED [ 24%] >tests/test_modeltest.py::test_broken_types[13] PASSED [ 25%] >tests/test_modeltest.py::test_broken_types[6] PASSED [ 25%] >tests/test_modeltest.py::test_broken_types[8] PASSED [ 25%] >tests/test_modeltest.py::test_broken_types[9] PASSED [ 25%] >tests/test_modeltest.py::test_broken_types[7] PASSED [ 26%] >tests/test_modeltest.py::test_broken_types[10] PASSED [ 26%] >tests/test_modeltest.py::test_data_alignment[1-True] PASSED [ 26%] >tests/test_modeltest.py::test_data_alignment[2-True] PASSED [ 27%] >tests/test_modeltest.py::test_data_alignment[16777215-False] PASSED [ 27%] >tests/test_modeltest.py::test_data_alignment[foo-False] PASSED [ 27%] >tests/test_modeltest.py::test_data_alignment[role_value4-False] PASSED [ 27%] >tests/test_modeltest.py::test_header_handling PASSED [ 28%] >tests/test_modeltest.py::test_invalid_column_count PASSED [ 28%] >tests/test_modeltest.py::test_changing_model_insert PASSED [ 28%] >tests/test_modeltest.py::test_changing_model_remove PASSED [ 29%] >tests/test_modeltest.py::test_changing_model_data PASSED [ 29%] >tests/test_modeltest.py::test_changing_model_header_data[1] PASSED [ 29%] >tests/test_modeltest.py::test_changing_model_header_data[2] PASSED [ 30%] >tests/test_modeltest.py::test_changing_model_sort PASSED [ 30%] >tests/test_modeltest.py::test_nop PASSED [ 30%] >tests/test_modeltest.py::test_overridden_methods PASSED [ 30%] >tests/test_modeltest.py::test_fetch_more PASSED [ 31%] >tests/test_modeltest.py::test_invalid_parent PASSED [ 31%] >tests/test_modeltest.py::test_qt_tester_valid PASSED [ 31%] >tests/test_modeltest.py::test_qt_tester_invalid PASSED [ 32%] >tests/test_qtest_proxies.py::test_expected_qtest_proxies[keyPress0] PASSED [ 32%] >tests/test_qtest_proxies.py::test_expected_qtest_proxies[keyClick] PASSED [ 32%] >tests/test_qtest_proxies.py::test_expected_qtest_proxies[keyClicks] PASSED [ 33%] >tests/test_qtest_proxies.py::test_expected_qtest_proxies[keyEvent] PASSED [ 33%] >tests/test_qtest_proxies.py::test_expected_qtest_proxies[keyPress1] PASSED [ 33%] >tests/test_qtest_proxies.py::test_expected_qtest_proxies[keyRelease] PASSED [ 33%] >tests/test_qtest_proxies.py::test_expected_qtest_proxies[keyToAscii] XFAIL [ 34%] >tests/test_qtest_proxies.py::test_expected_qtest_proxies[mouseClick] PASSED [ 34%] >tests/test_qtest_proxies.py::test_expected_qtest_proxies[mouseDClick] PASSED [ 34%] >tests/test_qtest_proxies.py::test_expected_qtest_proxies[mouseMove] PASSED [ 35%] >tests/test_qtest_proxies.py::test_expected_qtest_proxies[mousePress] PASSED [ 35%] >tests/test_qtest_proxies.py::test_expected_qtest_proxies[mouseRelease] PASSED [ 35%] >tests/test_wait_signal.py::test_signal_blocker_exception PASSED [ 36%] >tests/test_wait_signal.py::test_signal_triggered[200-None-True-explicit_wait-True] PASSED [ 36%] >tests/test_wait_signal.py::test_signal_triggered[200-None-True-explicit_wait-False] PASSED [ 36%] >tests/test_wait_signal.py::test_signal_triggered[200-None-True-context_manager_wait-True] PASSED [ 36%] >tests/test_wait_signal.py::test_signal_triggered[200-None-True-context_manager_wait-False] PASSED [ 37%] >tests/test_wait_signal.py::test_signal_triggered[200-400-True-explicit_wait-True] PASSED [ 37%] >tests/test_wait_signal.py::test_signal_triggered[200-400-True-explicit_wait-False] PASSED [ 37%] >tests/test_wait_signal.py::test_signal_triggered[200-400-True-context_manager_wait-True] PASSED [ 38%] >tests/test_wait_signal.py::test_signal_triggered[200-400-True-context_manager_wait-False] PASSED [ 38%] >tests/test_wait_signal.py::test_signal_triggered[400-200-False-explicit_wait-True] PASSED [ 38%] >tests/test_wait_signal.py::test_signal_triggered[400-200-False-explicit_wait-False] PASSED [ 38%] >tests/test_wait_signal.py::test_signal_triggered[400-200-False-context_manager_wait-True] PASSED [ 39%] >tests/test_wait_signal.py::test_signal_triggered[400-200-False-context_manager_wait-False] PASSED [ 39%] >tests/test_wait_signal.py::test_zero_timeout[True] PASSED [ 39%] >tests/test_wait_signal.py::test_zero_timeout[False] PASSED [ 40%] >tests/test_wait_signal.py::test_raising[qt_wait_signal_raising-false-False] PASSED [ 40%] >tests/test_wait_signal.py::test_raising[qt_wait_signal_raising-true-True] PASSED [ 40%] >tests/test_wait_signal.py::test_raising[qt_wait_signal_raising-None-True] PASSED [ 41%] >tests/test_wait_signal.py::test_raising[qt_default_raising-false-False] PASSED [ 41%] >tests/test_wait_signal.py::test_raising[qt_default_raising-true-True] PASSED [ 41%] >tests/test_wait_signal.py::test_raising[qt_default_raising-None-True] PASSED [ 41%] >tests/test_wait_signal.py::test_raising_by_default_overridden[qt_wait_signal_raising] PASSED [ 42%] >tests/test_wait_signal.py::test_raising_by_default_overridden[qt_default_raising] PASSED [ 42%] >tests/test_wait_signal.py::test_signal_triggered_multiple[200-300-400-True-explicit_wait-True] FAILED [ 42%] >tests/test_wait_signal.py::test_signal_triggered_multiple[200-300-400-True-explicit_wait-False] FAILED [ 43%] >tests/test_wait_signal.py::test_signal_triggered_multiple[200-300-400-True-context_manager_wait-True] FAILED [ 43%] >tests/test_wait_signal.py::test_signal_triggered_multiple[200-300-400-True-context_manager_wait-False] FAILED [ 43%] >tests/test_wait_signal.py::test_signal_triggered_multiple[300-200-400-True-explicit_wait-True] FAILED [ 44%] >tests/test_wait_signal.py::test_signal_triggered_multiple[300-200-400-True-explicit_wait-False] FAILED [ 44%] >tests/test_wait_signal.py::test_signal_triggered_multiple[300-200-400-True-context_manager_wait-True] FAILED [ 44%] >tests/test_wait_signal.py::test_signal_triggered_multiple[300-200-400-True-context_manager_wait-False] FAILED [ 44%] >tests/test_wait_signal.py::test_signal_triggered_multiple[200-300-None-True-explicit_wait-True] FAILED [ 45%] >tests/test_wait_signal.py::test_signal_triggered_multiple[200-300-None-True-explicit_wait-False] FAILED [ 45%] >tests/test_wait_signal.py::test_signal_triggered_multiple[200-300-None-True-context_manager_wait-True] FAILED [ 45%] >tests/test_wait_signal.py::test_signal_triggered_multiple[200-300-None-True-context_manager_wait-False] FAILED [ 46%] >tests/test_wait_signal.py::test_signal_triggered_multiple[400-400-200-False-explicit_wait-True] FAILED [ 46%] >tests/test_wait_signal.py::test_signal_triggered_multiple[400-400-200-False-explicit_wait-False] FAILED [ 46%] >tests/test_wait_signal.py::test_signal_triggered_multiple[400-400-200-False-context_manager_wait-True] FAILED [ 47%] >tests/test_wait_signal.py::test_signal_triggered_multiple[400-400-200-False-context_manager_wait-False] FAILED [ 47%] >tests/test_wait_signal.py::test_signal_triggered_multiple[200-400-300-False-explicit_wait-True] FAILED [ 47%] >tests/test_wait_signal.py::test_signal_triggered_multiple[200-400-300-False-explicit_wait-False] FAILED [ 47%] >tests/test_wait_signal.py::test_signal_triggered_multiple[200-400-300-False-context_manager_wait-True] FAILED [ 48%] >tests/test_wait_signal.py::test_signal_triggered_multiple[200-400-300-False-context_manager_wait-False] FAILED [ 48%] >tests/test_wait_signal.py::test_signal_triggered_multiple[400-200-200-False-explicit_wait-True] FAILED [ 48%] >tests/test_wait_signal.py::test_signal_triggered_multiple[400-200-200-False-explicit_wait-False] FAILED [ 49%] >tests/test_wait_signal.py::test_signal_triggered_multiple[400-200-200-False-context_manager_wait-True] FAILED [ 49%] >tests/test_wait_signal.py::test_signal_triggered_multiple[400-200-200-False-context_manager_wait-False] FAILED [ 49%] >tests/test_wait_signal.py::test_signal_triggered_multiple[200-1000-400-False-explicit_wait-True] FAILED [ 50%] >tests/test_wait_signal.py::test_signal_triggered_multiple[200-1000-400-False-explicit_wait-False] FAILED [ 50%] >tests/test_wait_signal.py::test_signal_triggered_multiple[200-1000-400-False-context_manager_wait-True] FAILED [ 50%] >tests/test_wait_signal.py::test_signal_triggered_multiple[200-1000-400-False-context_manager_wait-False] FAILED [ 50%] >tests/test_wait_signal.py::test_explicit_emit PASSED [ 51%] >tests/test_wait_signal.py::test_explicit_emit_multiple FAILED [ 51%] >tests/test_wait_signal.py::test_blockers_handle_exceptions[True-single] PASSED [ 51%] >tests/test_wait_signal.py::test_blockers_handle_exceptions[True-multiple] FAILED [ 52%] >tests/test_wait_signal.py::test_blockers_handle_exceptions[True-callback] PASSED [ 52%] >tests/test_wait_signal.py::test_blockers_handle_exceptions[False-single] PASSED [ 52%] >tests/test_wait_signal.py::test_blockers_handle_exceptions[False-multiple] FAILED [ 52%] >tests/test_wait_signal.py::test_blockers_handle_exceptions[False-callback] PASSED [ 53%] >tests/test_wait_signal.py::test_wait_twice[True-True] FAILED [ 53%] >tests/test_wait_signal.py::test_wait_twice[True-False] PASSED [ 53%] >tests/test_wait_signal.py::test_wait_twice[False-True] FAILED [ 54%] >tests/test_wait_signal.py::test_wait_twice[False-False] PASSED [ 54%] >tests/test_wait_signal.py::test_wait_signals_invalid_strict_parameter PASSED [ 54%] >tests/test_wait_signal.py::test_destroyed PASSED [ 55%] >tests/test_wait_signal.py::TestArgs::test_simple PASSED [ 55%] >tests/test_wait_signal.py::TestArgs::test_timeout PASSED [ 55%] >tests/test_wait_signal.py::TestArgs::test_without_args PASSED [ 55%] >tests/test_wait_signal.py::TestArgs::test_multi FAILED [ 56%] >tests/test_wait_signal.py::TestArgs::test_connected_signal PASSED [ 56%] >tests/test_wait_signal.py::test_signal_identity PASSED [ 56%] >tests/test_wait_signal.py::test_invalid_signal PASSED [ 57%] >tests/test_wait_signal.py::test_invalid_signal_tuple_length PASSED [ 57%] >tests/test_wait_signal.py::test_provided_empty_signal_name PASSED [ 57%] >tests/test_wait_signal.py::test_provided_invalid_signal_name_type PASSED [ 58%] >tests/test_wait_signal.py::test_signalandargs_equality PASSED [ 58%] >tests/test_wait_signal.py::test_signalandargs_inequality PASSED [ 58%] >tests/test_wait_signal.py::TestCallback::test_wait_signal[emitted_signal_codes0-expected_signal_codes0-True] PASSED [ 58%] >tests/test_wait_signal.py::TestCallback::test_wait_signal[emitted_signal_codes1-expected_signal_codes1-True] PASSED [ 59%] >tests/test_wait_signal.py::TestCallback::test_wait_signal[emitted_signal_codes2-expected_signal_codes2-True] PASSED [ 59%] >tests/test_wait_signal.py::TestCallback::test_wait_signal[emitted_signal_codes3-expected_signal_codes3-True] PASSED [ 59%] >tests/test_wait_signal.py::TestCallback::test_wait_signal[emitted_signal_codes4-expected_signal_codes4-True] PASSED [ 60%] >tests/test_wait_signal.py::TestCallback::test_wait_signal[emitted_signal_codes5-expected_signal_codes5-False] PASSED [ 60%] >tests/test_wait_signal.py::TestCallback::test_wait_signal[emitted_signal_codes6-expected_signal_codes6-False] PASSED [ 60%] >tests/test_wait_signal.py::TestCallback::test_wait_signal[emitted_signal_codes7-expected_signal_codes7-False] PASSED [ 61%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes0-expected_signal_codes0-True] FAILED [ 61%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes1-expected_signal_codes1-True] FAILED [ 61%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes2-expected_signal_codes2-True] FAILED [ 61%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes3-expected_signal_codes3-True] FAILED [ 62%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes4-expected_signal_codes4-True] FAILED [ 62%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes5-expected_signal_codes5-True] FAILED [ 62%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes6-expected_signal_codes6-True] FAILED [ 63%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes7-expected_signal_codes7-True] FAILED [ 63%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes8-expected_signal_codes8-True] FAILED [ 63%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes9-expected_signal_codes9-True] FAILED [ 63%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes10-expected_signal_codes10-True] FAILED [ 64%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes11-expected_signal_codes11-True] FAILED [ 64%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes12-expected_signal_codes12-True] FAILED [ 64%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes13-expected_signal_codes13-True] FAILED [ 65%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes14-expected_signal_codes14-True] FAILED [ 65%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes15-expected_signal_codes15-True] FAILED [ 65%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes16-expected_signal_codes16-True] FAILED [ 66%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes17-expected_signal_codes17-True] FAILED [ 66%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes18-expected_signal_codes18-True] FAILED [ 66%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes19-expected_signal_codes19-True] FAILED [ 66%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes20-expected_signal_codes20-True] FAILED [ 67%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes21-expected_signal_codes21-False] FAILED [ 67%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes22-expected_signal_codes22-False] FAILED [ 67%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes23-expected_signal_codes23-False] FAILED [ 68%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes24-expected_signal_codes24-False] FAILED [ 68%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes25-expected_signal_codes25-False] FAILED [ 68%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes26-expected_signal_codes26-False] FAILED [ 69%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes27-expected_signal_codes27-False] FAILED [ 69%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes28-expected_signal_codes28-False] FAILED [ 69%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes29-expected_signal_codes29-False] FAILED [ 69%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes0-expected_signal_codes0-True] FAILED [ 70%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes1-expected_signal_codes1-True] FAILED [ 70%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes2-expected_signal_codes2-True] FAILED [ 70%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes3-expected_signal_codes3-True] FAILED [ 71%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes4-expected_signal_codes4-True] FAILED [ 71%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes5-expected_signal_codes5-True] FAILED [ 71%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes6-expected_signal_codes6-True] FAILED [ 72%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes7-expected_signal_codes7-True] FAILED [ 72%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes8-expected_signal_codes8-True] FAILED [ 72%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes9-expected_signal_codes9-True] FAILED [ 72%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes10-expected_signal_codes10-True] FAILED [ 73%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes11-expected_signal_codes11-True] FAILED [ 73%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes12-expected_signal_codes12-True] FAILED [ 73%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes13-expected_signal_codes13-True] FAILED [ 74%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes14-expected_signal_codes14-True] FAILED [ 74%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes15-expected_signal_codes15-True] FAILED [ 74%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes16-expected_signal_codes16-False] FAILED [ 75%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes17-expected_signal_codes17-False] FAILED [ 75%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes18-expected_signal_codes18-False] FAILED [ 75%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes19-expected_signal_codes19-False] FAILED [ 75%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes20-expected_signal_codes20-False] FAILED [ 76%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes21-expected_signal_codes21-False] FAILED [ 76%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes22-expected_signal_codes22-False] FAILED [ 76%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes23-expected_signal_codes23-False] FAILED [ 77%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes24-expected_signal_codes24-False] FAILED [ 77%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes25-expected_signal_codes25-False] FAILED [ 77%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes26-expected_signal_codes26-False] FAILED [ 77%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes27-expected_signal_codes27-False] FAILED [ 78%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes28-expected_signal_codes28-False] FAILED [ 78%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes0-expected_signal_codes0-True] FAILED [ 78%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes1-expected_signal_codes1-True] FAILED [ 79%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes2-expected_signal_codes2-True] FAILED [ 79%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes3-expected_signal_codes3-True] FAILED [ 79%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes4-expected_signal_codes4-True] FAILED [ 80%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes5-expected_signal_codes5-True] FAILED [ 80%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes6-expected_signal_codes6-True] FAILED [ 80%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes7-expected_signal_codes7-True] FAILED [ 80%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes8-expected_signal_codes8-True] FAILED [ 81%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes9-expected_signal_codes9-True] FAILED [ 81%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes10-expected_signal_codes10-True] FAILED [ 81%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes11-expected_signal_codes11-True] FAILED [ 82%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes12-expected_signal_codes12-False] FAILED [ 82%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes13-expected_signal_codes13-False] FAILED [ 82%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes14-expected_signal_codes14-False] FAILED [ 83%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes15-expected_signal_codes15-False] FAILED [ 83%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes16-expected_signal_codes16-False] FAILED [ 83%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes17-expected_signal_codes17-False] FAILED [ 83%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes18-expected_signal_codes18-False] FAILED [ 84%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes19-expected_signal_codes19-False] FAILED [ 84%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes20-expected_signal_codes20-False] FAILED [ 84%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes21-expected_signal_codes21-False] FAILED [ 85%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes22-expected_signal_codes22-False] FAILED [ 85%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes23-expected_signal_codes23-False] FAILED [ 85%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes24-expected_signal_codes24-False] FAILED [ 86%] >tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes25-expected_signal_codes25-False] FAILED [ 86%] >tests/test_wait_signal.py::TestCallback::test_signals_and_callbacks_length_mismatch PASSED [ 86%] >tests/test_wait_signal.py::TestAllArgs::test_no_signal_without_args PASSED [ 86%] >tests/test_wait_signal.py::TestAllArgs::test_one_signal_without_args PASSED [ 87%] >tests/test_wait_signal.py::TestAllArgs::test_one_signal_with_args_matching PASSED [ 87%] >tests/test_wait_signal.py::TestAllArgs::test_two_signals_with_args_partially_matching PASSED [ 87%] >tests/test_wait_signal.py::TestAllSignalsAndArgs::test_empty_when_no_signal FAILED [ 88%] >tests/test_wait_signal.py::TestAllSignalsAndArgs::test_empty_when_no_signal_name_available SKIPPED [ 88%] >tests/test_wait_signal.py::TestAllSignalsAndArgs::test_non_empty_on_timeout_no_cb FAILED [ 88%] >tests/test_wait_signal.py::TestAllSignalsAndArgs::test_non_empty_no_cb FAILED [ 88%] >tests/test_wait_signal.py::TestWaitSignalTimeoutErrorMessage::test_without_callback_and_args PASSED [ 89%] >tests/test_wait_signal.py::TestWaitSignalTimeoutErrorMessage::test_unable_to_get_callback_name SKIPPED [ 89%] >tests/test_wait_signal.py::TestWaitSignalTimeoutErrorMessage::test_with_single_arg PASSED [ 89%] >tests/test_wait_signal.py::TestWaitSignalTimeoutErrorMessage::test_with_multiple_args PASSED [ 90%] >tests/test_wait_signal.py::TestWaitSignalsTimeoutErrorMessage::test_no_signal_emitted_with_some_callbacks[none] FAILED [ 90%] >tests/test_wait_signal.py::TestWaitSignalsTimeoutErrorMessage::test_no_signal_emitted_with_some_callbacks[simple] FAILED [ 90%] >tests/test_wait_signal.py::TestWaitSignalsTimeoutErrorMessage::test_no_signal_emitted_with_some_callbacks[strict] FAILED [ 91%] >tests/test_wait_signal.py::TestWaitSignalsTimeoutErrorMessage::test_no_signal_emitted_no_callbacks[none] FAILED [ 91%] >tests/test_wait_signal.py::TestWaitSignalsTimeoutErrorMessage::test_no_signal_emitted_no_callbacks[simple] FAILED [ 91%] >tests/test_wait_signal.py::TestWaitSignalsTimeoutErrorMessage::test_no_signal_emitted_no_callbacks[strict] FAILED [ 91%] >tests/test_wait_signal.py::TestWaitSignalsTimeoutErrorMessage::test_none_order_one_signal_emitted FAILED [ 92%] >tests/test_wait_signal.py::TestWaitSignalsTimeoutErrorMessage::test_simple_order_first_signal_emitted FAILED [ 92%] >tests/test_wait_signal.py::TestWaitSignalsTimeoutErrorMessage::test_simple_order_second_signal_emitted FAILED [ 92%] >tests/test_wait_signal.py::TestWaitSignalsTimeoutErrorMessage::test_strict_order_violation FAILED [ 93%] >tests/test_wait_signal.py::TestWaitSignalsTimeoutErrorMessage::test_degenerate_error_msg SKIPPED [ 93%] >tests/test_wait_signal.py::TestWaitSignalsTimeoutErrorMessage::test_self_defined_signal_name FAILED [ 93%] >tests/test_wait_signal.py::TestAssertNotEmitted::test_not_emitted PASSED [ 94%] >tests/test_wait_signal.py::TestAssertNotEmitted::test_emitted PASSED [ 94%] >tests/test_wait_signal.py::TestAssertNotEmitted::test_emitted_args PASSED [ 94%] >tests/test_wait_signal.py::TestAssertNotEmitted::test_disconnected PASSED [ 94%] >tests/test_wait_signal.py::TestAssertNotEmitted::test_emitted_late PASSED [ 95%] >tests/test_wait_signal.py::TestAssertNotEmitted::test_continues_when_emitted PASSED [ 95%] >tests/test_wait_signal.py::TestWaitCallback::test_immediate PASSED [ 95%] >tests/test_wait_signal.py::TestWaitCallback::test_later PASSED [ 96%] >tests/test_wait_signal.py::TestWaitCallback::test_args PASSED [ 96%] >tests/test_wait_signal.py::TestWaitCallback::test_assert_called_with PASSED [ 96%] >tests/test_wait_signal.py::TestWaitCallback::test_assert_called_with_wrong PASSED [ 97%] >tests/test_wait_signal.py::TestWaitCallback::test_explicit PASSED [ 97%] >tests/test_wait_signal.py::TestWaitCallback::test_called_twice PASSED [ 97%] >tests/test_wait_signal.py::TestWaitCallback::test_timeout_raising PASSED [ 97%] >tests/test_wait_signal.py::TestWaitCallback::test_timeout_not_raising PASSED [ 98%] >tests/test_wait_until.py::test_wait_until[predicate] PASSED [ 98%] >tests/test_wait_until.py::test_wait_until[assert] PASSED [ 98%] >tests/test_wait_until.py::test_wait_until_timeout[predicate] PASSED [ 99%] >tests/test_wait_until.py::test_wait_until_timeout[assert] PASSED [ 99%] >tests/test_wait_until.py::test_invalid_callback_return_value PASSED [ 99%] >tests/test_wait_until.py::test_pep8_alias PASSED [100%] > >=================================== FAILURES =================================== >_____ test_signal_triggered_multiple[200-300-400-True-explicit_wait-True] ______ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86282f0748> >timer = <conftest.timer.<locals>.Timer object at 0x7f8628435af8> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f86282f0f60> >wait_function = <function explicit_wait at 0x7f8676205950>, delay_1 = 200 >delay_2 = 300, timeout = 400 >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628435e58> >expected_signal_triggered = True, raising = True > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:32: in explicit_wait > blocker = func(signal, timeout, raising=raising) >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86282f0da0> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f8628435e58>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f8628435e58>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_____ test_signal_triggered_multiple[200-300-400-True-explicit_wait-False] _____ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8628294e48> >timer = <conftest.timer.<locals>.Timer object at 0x7f86284354c8> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f86282f2eb8> >wait_function = <function explicit_wait at 0x7f8676205950>, delay_1 = 200 >delay_2 = 300, timeout = 400 >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86282b3948> >expected_signal_triggered = True, raising = False > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:32: in explicit_wait > blocker = func(signal, timeout, raising=raising) >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86282f0240> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f86282b3948>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f86282b3948>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >__ test_signal_triggered_multiple[200-300-400-True-context_manager_wait-True] __ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8628152f60> >timer = <conftest.timer.<locals>.Timer object at 0x7f8628435ee8> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f8628152f98> >wait_function = <function context_manager_wait at 0x7f8676205400>, delay_1 = 200 >delay_2 = 300, timeout = 400 >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86282b38b8> >expected_signal_triggered = True, raising = True > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:52: in context_manager_wait > with func(signal, timeout, raising=raising) as blocker: >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8628152710> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f86282b38b8>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f86282b38b8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ test_signal_triggered_multiple[200-300-400-True-context_manager_wait-False] __ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280472b0> >timer = <conftest.timer.<locals>.Timer object at 0x7f862823baf8> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f8628047630> >wait_function = <function context_manager_wait at 0x7f8676205400>, delay_1 = 200 >delay_2 = 300, timeout = 400 >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862823b678> >expected_signal_triggered = True, raising = False > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:52: in context_manager_wait > with func(signal, timeout, raising=raising) as blocker: >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280479e8> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f862823b678>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f862823b678>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_____ test_signal_triggered_multiple[300-200-400-True-explicit_wait-True] ______ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86283333c8> >timer = <conftest.timer.<locals>.Timer object at 0x7f862823b798> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f86282f0f60> >wait_function = <function explicit_wait at 0x7f8676205950>, delay_1 = 300 >delay_2 = 200, timeout = 400 >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862823b948> >expected_signal_triggered = True, raising = True > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:32: in explicit_wait > blocker = func(signal, timeout, raising=raising) >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8628294c50> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f862823b948>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f862823b948>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_____ test_signal_triggered_multiple[300-200-400-True-explicit_wait-False] _____ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862855c3c8> >timer = <conftest.timer.<locals>.Timer object at 0x7f862823b708> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f86280648d0> >wait_function = <function explicit_wait at 0x7f8676205950>, delay_1 = 300 >delay_2 = 200, timeout = 400 >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8648516dc8> >expected_signal_triggered = True, raising = False > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:32: in explicit_wait > blocker = func(signal, timeout, raising=raising) >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8628064f98> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f8648516dc8>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f8648516dc8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >__ test_signal_triggered_multiple[300-200-400-True-context_manager_wait-True] __ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280437f0> >timer = <conftest.timer.<locals>.Timer object at 0x7f8628267558> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f8628043828> >wait_function = <function context_manager_wait at 0x7f8676205400>, delay_1 = 300 >delay_2 = 200, timeout = 400 >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86282675e8> >expected_signal_triggered = True, raising = True > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:52: in context_manager_wait > with func(signal, timeout, raising=raising) as blocker: >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8628043c88> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f86282675e8>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f86282675e8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ test_signal_triggered_multiple[300-200-400-True-context_manager_wait-False] __ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8628392128> >timer = <conftest.timer.<locals>.Timer object at 0x7f862823bee8> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f8628294be0> >wait_function = <function context_manager_wait at 0x7f8676205400>, delay_1 = 300 >delay_2 = 200, timeout = 400 >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862823b4c8> >expected_signal_triggered = True, raising = False > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:52: in context_manager_wait > with func(signal, timeout, raising=raising) as blocker: >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86282f2eb8> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f862823b4c8>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f862823b4c8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_____ test_signal_triggered_multiple[200-300-None-True-explicit_wait-True] _____ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862815c8d0> >timer = <conftest.timer.<locals>.Timer object at 0x7f862823b678> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f862815c908> >wait_function = <function explicit_wait at 0x7f8676205950>, delay_1 = 200 >delay_2 = 300, timeout = None >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628435f78> >expected_signal_triggered = True, raising = True > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:32: in explicit_wait > blocker = func(signal, timeout, raising=raising) >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862815ce10> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f8628435f78>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f8628435f78>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >____ test_signal_triggered_multiple[200-300-None-True-explicit_wait-False] _____ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8628188358> >timer = <conftest.timer.<locals>.Timer object at 0x7f86282b3a68> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f86281884a8> >wait_function = <function explicit_wait at 0x7f8676205950>, delay_1 = 200 >delay_2 = 300, timeout = None >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86282b39d8> >expected_signal_triggered = True, raising = False > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:32: in explicit_wait > blocker = func(signal, timeout, raising=raising) >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86281887f0> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f86282b39d8>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f86282b39d8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ test_signal_triggered_multiple[200-300-None-True-context_manager_wait-True] __ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862846c748> >timer = <conftest.timer.<locals>.Timer object at 0x7f86282671f8> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f862846c940> >wait_function = <function context_manager_wait at 0x7f8676205400>, delay_1 = 200 >delay_2 = 300, timeout = None >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628267168> >expected_signal_triggered = True, raising = True > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:52: in context_manager_wait > with func(signal, timeout, raising=raising) as blocker: >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862846c0f0> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f8628267168>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f8628267168>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ test_signal_triggered_multiple[200-300-None-True-context_manager_wait-False] _ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8628644f98> >timer = <conftest.timer.<locals>.Timer object at 0x7f86282670d8> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f8628465eb8> >wait_function = <function context_manager_wait at 0x7f8676205400>, delay_1 = 200 >delay_2 = 300, timeout = None >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628267438> >expected_signal_triggered = True, raising = False > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:52: in context_manager_wait > with func(signal, timeout, raising=raising) as blocker: >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8628465ac8> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f8628267438>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f8628267438>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_____ test_signal_triggered_multiple[400-400-200-False-explicit_wait-True] _____ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862813b828> >timer = <conftest.timer.<locals>.Timer object at 0x7f86282674c8> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f862813b860> >wait_function = <function explicit_wait at 0x7f8676205950>, delay_1 = 400 >delay_2 = 400, timeout = 200 >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628267318> >expected_signal_triggered = False, raising = True > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:32: in explicit_wait > blocker = func(signal, timeout, raising=raising) >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862813bb70> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f8628267318>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f8628267318>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >____ test_signal_triggered_multiple[400-400-200-False-explicit_wait-False] _____ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862818fba8> >timer = <conftest.timer.<locals>.Timer object at 0x7f86282b3b88> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f862818fcf8> >wait_function = <function explicit_wait at 0x7f8676205950>, delay_1 = 400 >delay_2 = 400, timeout = 200 >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86282b39d8> >expected_signal_triggered = False, raising = False > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:32: in explicit_wait > blocker = func(signal, timeout, raising=raising) >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862818ff28> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f86282b39d8>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f86282b39d8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ test_signal_triggered_multiple[400-400-200-False-context_manager_wait-True] __ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8628282c50> >timer = <conftest.timer.<locals>.Timer object at 0x7f862823b828> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f8628282860> >wait_function = <function context_manager_wait at 0x7f8676205400>, delay_1 = 400 >delay_2 = 400, timeout = 200 >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862823be58> >expected_signal_triggered = False, raising = True > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:49: in context_manager_wait > with func(signal, timeout, raising=raising) as blocker: >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8628282908> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f862823be58>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f862823be58>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ test_signal_triggered_multiple[400-400-200-False-context_manager_wait-False] _ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862809a2e8> >timer = <conftest.timer.<locals>.Timer object at 0x7f8628267f78> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f862809a438> >wait_function = <function context_manager_wait at 0x7f8676205400>, delay_1 = 400 >delay_2 = 400, timeout = 200 >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86282675e8> >expected_signal_triggered = False, raising = False > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:52: in context_manager_wait > with func(signal, timeout, raising=raising) as blocker: >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862809a780> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f86282675e8>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f86282675e8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_____ test_signal_triggered_multiple[200-400-300-False-explicit_wait-True] _____ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86282d9e48> >timer = <conftest.timer.<locals>.Timer object at 0x7f8628267b88> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f86282d9a58> >wait_function = <function explicit_wait at 0x7f8676205950>, delay_1 = 200 >delay_2 = 400, timeout = 300 >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628267678> >expected_signal_triggered = False, raising = True > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:32: in explicit_wait > blocker = func(signal, timeout, raising=raising) >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86281b4828> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f8628267678>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f8628267678>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >____ test_signal_triggered_multiple[200-400-300-False-explicit_wait-False] _____ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8628056358> >timer = <conftest.timer.<locals>.Timer object at 0x7f8628257048> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f8628056e80> >wait_function = <function explicit_wait at 0x7f8676205950>, delay_1 = 200 >delay_2 = 400, timeout = 300 >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86282570d8> >expected_signal_triggered = False, raising = False > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:32: in explicit_wait > blocker = func(signal, timeout, raising=raising) >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8628056f60> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f86282570d8>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f86282570d8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ test_signal_triggered_multiple[200-400-300-False-context_manager_wait-True] __ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86282d9e48> >timer = <conftest.timer.<locals>.Timer object at 0x7f8628435d38> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f86282d9e10> >wait_function = <function context_manager_wait at 0x7f8676205400>, delay_1 = 200 >delay_2 = 400, timeout = 300 >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628435e58> >expected_signal_triggered = False, raising = True > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:49: in context_manager_wait > with func(signal, timeout, raising=raising) as blocker: >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86282ac438> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f8628435e58>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f8628435e58>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ test_signal_triggered_multiple[200-400-300-False-context_manager_wait-False] _ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280777b8> >timer = <conftest.timer.<locals>.Timer object at 0x7f8628435f78> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f8628077860> >wait_function = <function context_manager_wait at 0x7f8676205400>, delay_1 = 200 >delay_2 = 400, timeout = 300 >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628267708> >expected_signal_triggered = False, raising = False > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:52: in context_manager_wait > with func(signal, timeout, raising=raising) as blocker: >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8628077b00> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f8628267708>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f8628267708>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_____ test_signal_triggered_multiple[400-200-200-False-explicit_wait-True] _____ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8628168ef0> >timer = <conftest.timer.<locals>.Timer object at 0x7f86282675e8> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f8628168eb8> >wait_function = <function explicit_wait at 0x7f8676205950>, delay_1 = 400 >delay_2 = 200, timeout = 200 >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628267ca8> >expected_signal_triggered = False, raising = True > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:32: in explicit_wait > blocker = func(signal, timeout, raising=raising) >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8628168390> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f8628267ca8>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f8628267ca8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >____ test_signal_triggered_multiple[400-200-200-False-explicit_wait-False] _____ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86282829e8> >timer = <conftest.timer.<locals>.Timer object at 0x7f86282b3948> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f8628282828> >wait_function = <function explicit_wait at 0x7f8676205950>, delay_1 = 400 >delay_2 = 200, timeout = 200 >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628257d38> >expected_signal_triggered = False, raising = False > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:32: in explicit_wait > blocker = func(signal, timeout, raising=raising) >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86281b5a90> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f8628257d38>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f8628257d38>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ test_signal_triggered_multiple[400-200-200-False-context_manager_wait-True] __ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8628062550> >timer = <conftest.timer.<locals>.Timer object at 0x7f8628257438> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f8628062588> >wait_function = <function context_manager_wait at 0x7f8676205400>, delay_1 = 400 >delay_2 = 200, timeout = 200 >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628257948> >expected_signal_triggered = False, raising = True > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:49: in context_manager_wait > with func(signal, timeout, raising=raising) as blocker: >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8628062ac8> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f8628257948>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f8628257948>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ test_signal_triggered_multiple[400-200-200-False-context_manager_wait-False] _ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280d0f60> >timer = <conftest.timer.<locals>.Timer object at 0x7f8628257a68> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f86280d0128> >wait_function = <function context_manager_wait at 0x7f8676205400>, delay_1 = 400 >delay_2 = 200, timeout = 200 >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628257168> >expected_signal_triggered = False, raising = False > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:52: in context_manager_wait > with func(signal, timeout, raising=raising) as blocker: >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280d0470> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f8628257168>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f8628257168>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >____ test_signal_triggered_multiple[200-1000-400-False-explicit_wait-True] _____ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86282339e8> >timer = <conftest.timer.<locals>.Timer object at 0x7f8628435948> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f8628233358> >wait_function = <function explicit_wait at 0x7f8676205950>, delay_1 = 200 >delay_2 = 1000, timeout = 400 >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86282b3af8> >expected_signal_triggered = False, raising = True > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:32: in explicit_wait > blocker = func(signal, timeout, raising=raising) >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86282339b0> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f86282b3af8>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f86282b3af8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >____ test_signal_triggered_multiple[200-1000-400-False-explicit_wait-False] ____ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8628127390> >timer = <conftest.timer.<locals>.Timer object at 0x7f8628257678> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f86281273c8> >wait_function = <function explicit_wait at 0x7f8676205950>, delay_1 = 200 >delay_2 = 1000, timeout = 400 >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628257948> >expected_signal_triggered = False, raising = False > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:32: in explicit_wait > blocker = func(signal, timeout, raising=raising) >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86281279b0> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f8628257948>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f8628257948>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ test_signal_triggered_multiple[200-1000-400-False-context_manager_wait-True] _ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86281abe10> >timer = <conftest.timer.<locals>.Timer object at 0x7f86282578b8> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f86281abda0> >wait_function = <function context_manager_wait at 0x7f8676205400>, delay_1 = 200 >delay_2 = 1000, timeout = 400 >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86282575e8> >expected_signal_triggered = False, raising = True > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:49: in context_manager_wait > with func(signal, timeout, raising=raising) as blocker: >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86281ab710> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f86282575e8>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f86282575e8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ test_signal_triggered_multiple[200-1000-400-False-context_manager_wait-False] _ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280f2550> >timer = <conftest.timer.<locals>.Timer object at 0x7f8628257708> >stop_watch = <conftest.stop_watch.<locals>.StopWatch object at 0x7f86280f2e10> >wait_function = <function context_manager_wait at 0x7f8676205400>, delay_1 = 200 >delay_2 = 1000, timeout = 400 >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628267708> >expected_signal_triggered = False, raising = False > > @pytest.mark.parametrize( > ( > "delay_1", > "delay_2", > "timeout", > "expected_signal_triggered", > "wait_function", > "raising", > ), > build_signal_tests_variants( > [ > # delay1, delay2, timeout, expected_signal_triggered > (200, 300, 400, True), > (300, 200, 400, True), > (200, 300, None, True), > (400, 400, 200, False), > (200, 400, 300, False), > (400, 200, 200, False), > (200, 1000, 400, False), > ] > ), > ) > def test_signal_triggered_multiple( > qtbot, > timer, > stop_watch, > wait_function, > delay_1, > delay_2, > timeout, > signaller, > expected_signal_triggered, > raising, > ): > """ > Testing for a signal in different conditions, ensuring we are obtaining > the expected results. > """ > timer.single_shot(signaller.signal, delay_1) > timer.single_shot(signaller.signal_2, delay_2) > > should_raise = raising and not expected_signal_triggered > > stop_watch.start() > blocker = wait_function( > qtbot, > [signaller.signal, signaller.signal_2], > timeout, > multiple=True, > raising=raising, >> should_raise=should_raise, > ) > >tests/test_wait_signal.py:259: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:52: in context_manager_wait > with func(signal, timeout, raising=raising) as blocker: >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280f2860> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f8628267708>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f8628267708>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_________________________ test_explicit_emit_multiple __________________________ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280bbd30> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628267438> > > def test_explicit_emit_multiple(qtbot, signaller): > """ > Make sure an explicit emit() inside a waitSignal block works. > """ > with qtbot.waitSignals( >> [signaller.signal, signaller.signal_2], timeout=5000 > ) as waiting: > >tests/test_wait_signal.py:283: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280bbc88> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f8628267438>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f8628267438>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >________________ test_blockers_handle_exceptions[True-multiple] ________________ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280becf8>, blocker = 'multiple' >raising = True >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628267e58> > > @pytest.mark.parametrize("blocker", ["single", "multiple", "callback"]) > @pytest.mark.parametrize("raising", [True, False]) > def test_blockers_handle_exceptions(qtbot, blocker, raising, signaller): > """ > Make sure blockers handle exceptions correctly. > """ > > class TestException(Exception): > pass > > if blocker == "multiple": > func = qtbot.waitSignals > args = [[signaller.signal, signaller.signal_2]] > elif blocker == "single": > func = qtbot.waitSignal > args = [signaller.signal] > elif blocker == "callback": > func = qtbot.waitCallback > args = [] > else: > assert False > > with pytest.raises(TestException): >> with func(*args, timeout=10, raising=raising): > >tests/test_wait_signal.py:337: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280bee80> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f8628267e58>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f8628267e58>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_______________ test_blockers_handle_exceptions[False-multiple] ________________ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280ff860>, blocker = 'multiple' >raising = False >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862823b9d8> > > @pytest.mark.parametrize("blocker", ["single", "multiple", "callback"]) > @pytest.mark.parametrize("raising", [True, False]) > def test_blockers_handle_exceptions(qtbot, blocker, raising, signaller): > """ > Make sure blockers handle exceptions correctly. > """ > > class TestException(Exception): > pass > > if blocker == "multiple": > func = qtbot.waitSignals > args = [[signaller.signal, signaller.signal_2]] > elif blocker == "single": > func = qtbot.waitSignal > args = [signaller.signal] > elif blocker == "callback": > func = qtbot.waitCallback > args = [] > else: > assert False > > with pytest.raises(TestException): >> with func(*args, timeout=10, raising=raising): > >tests/test_wait_signal.py:337: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280ffa20> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f862823b9d8>, <bound PYQT_SIGNAL signal_2 of Signaller object at 0x7f862823b9d8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >__________________________ test_wait_twice[True-True] __________________________ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862818ec88> >timer = <conftest.timer.<locals>.Timer object at 0x7f8628257ca8> >multiple = True, do_timeout = True >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628257f78> > > @pytest.mark.parametrize("multiple", [True, False]) > @pytest.mark.parametrize("do_timeout", [True, False]) > def test_wait_twice(qtbot, timer, multiple, do_timeout, signaller): > """ > https://github.com/pytest-dev/pytest-qt/issues/69 > """ > if multiple: > func = qtbot.waitSignals > arg = [signaller.signal] > else: > func = qtbot.waitSignal > arg = signaller.signal > > if do_timeout: >> with func(arg, timeout=100, raising=False): > >tests/test_wait_signal.py:355: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862818eb00> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f8628257f78>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_________________________ test_wait_twice[False-True] __________________________ > >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280e0438> >timer = <conftest.timer.<locals>.Timer object at 0x7f86282b3b88> >multiple = True, do_timeout = False >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628267288> > > @pytest.mark.parametrize("multiple", [True, False]) > @pytest.mark.parametrize("do_timeout", [True, False]) > def test_wait_twice(qtbot, timer, multiple, do_timeout, signaller): > """ > https://github.com/pytest-dev/pytest-qt/issues/69 > """ > if multiple: > func = qtbot.waitSignals > arg = [signaller.signal] > else: > func = qtbot.waitSignal > arg = signaller.signal > > if do_timeout: > with func(arg, timeout=100, raising=False): > timer.single_shot(signaller.signal, 200) > with func(arg, timeout=100, raising=False): > timer.single_shot(signaller.signal, 200) > else: >> with func(arg): > >tests/test_wait_signal.py:360: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280e0198> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f8628267288>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_____________________________ TestArgs.test_multi ______________________________ > >self = <test_wait_signal.TestArgs object at 0x7f860872cdd8> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86282d9d68> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628267558> > > def test_multi(self, qtbot, signaller): > """A MultiSignalBlocker doesn't have an args attribute.""" >> with qtbot.waitSignals([signaller.signal]) as blocker: > >tests/test_wait_signal.py:414: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f860872cac8> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f8628267558>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes0-expected_signal_codes0-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f862814f630> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862814fda0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862823b708> >emitted_signal_codes = ('A1',), expected_signal_codes = ('A1',) >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862814f160> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862823b708>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes1-expected_signal_codes1-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f862807fac8> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862807fbe0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862823b828> >emitted_signal_codes = ('A1',), expected_signal_codes = ('Ax',) >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862807fd68> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862823b828>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes2-expected_signal_codes2-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f86280cd048> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280cdc18> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628435e58> >emitted_signal_codes = ('A1', 'A1'), expected_signal_codes = ('A1', 'A1') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280cd4e0> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628435e58>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628435e58>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes3-expected_signal_codes3-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f862809edd8> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862809eef0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628267e58> >emitted_signal_codes = ('A1', 'A1'), expected_signal_codes = ('A1', 'Ax') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862809ebe0> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628267e58>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628267e58>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes4-expected_signal_codes4-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f862809f1d0> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862809f2b0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628267af8> >emitted_signal_codes = ('A1', 'A1'), expected_signal_codes = ('Ax', 'Ax') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862809fe48> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628267af8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628267af8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes5-expected_signal_codes5-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f8608753128> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86087533c8> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628267318> >emitted_signal_codes = ('A1', 'A2'), expected_signal_codes = ('A1', 'A2') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8608753780> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628267318>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628267318>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes6-expected_signal_codes6-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f8628294da0> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280b8588> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86285f81f8> >emitted_signal_codes = ('A2', 'A1'), expected_signal_codes = ('A2', 'A1') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280b8860> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86285f81f8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86285f81f8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes7-expected_signal_codes7-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f860874a048> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f860874a278> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628267708> >emitted_signal_codes = ('A1', 'B1'), expected_signal_codes = ('A1', 'B1') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f860874a5c0> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628267708>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f8628267708>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes8-expected_signal_codes8-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f860875abe0> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f860875aeb8> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862823b678> >emitted_signal_codes = ('A1', 'A1', 'B1') >expected_signal_codes = ('A1', 'A1', 'B1'), expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f860875a940> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862823b678>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862823b678>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f862823b678>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes9-expected_signal_codes9-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f86280792e8> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8628079a58> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628677a68> >emitted_signal_codes = ('A1', 'A2', 'B1') >expected_signal_codes = ('A1', 'A2', 'B1'), expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8628079710> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628677a68>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628677a68>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f8628677a68>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes10-expected_signal_codes10-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f862807c128> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862807c860> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628677ca8> >emitted_signal_codes = ('A1', 'B1', 'A1'), expected_signal_codes = ('A1', 'A1') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862807cac8> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628677ca8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628677ca8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes11-expected_signal_codes11-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f8608750470> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86087508d0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628257f78> >emitted_signal_codes = ('A1', 'B1', 'A1'), expected_signal_codes = ('Ax', 'A1') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86087507b8> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628257f78>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628257f78>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes12-expected_signal_codes12-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f862807f630> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862807fe48> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628435e58> >emitted_signal_codes = ('B1', 'A1', 'A1', 'B1', 'A1') >expected_signal_codes = ('A1', 'B1'), expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862807fef0> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628435e58>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f8628435e58>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes13-expected_signal_codes13-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f8608753780> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8608753cc0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86286771f8> >emitted_signal_codes = ('A1', 'A1', 'A1'), expected_signal_codes = ('A1', 'A1') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8608753550> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86286771f8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86286771f8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes14-expected_signal_codes14-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f86280e0208> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280e0940> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628267708> >emitted_signal_codes = ('A1', 'A1', 'A1'), expected_signal_codes = ('A1', 'Ax') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280e0390> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628267708>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628267708>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes15-expected_signal_codes15-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f8608776470> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8608776320> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628267c18> >emitted_signal_codes = ('A1', 'A2', 'A1'), expected_signal_codes = ('A1', 'A1') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86087767f0> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628267c18>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628267c18>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes16-expected_signal_codes16-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f862815c748> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862815ca20> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628257c18> >emitted_signal_codes = ('A1', 'A2'), expected_signal_codes = ('A2', 'A1') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862815cc18> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628257c18>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628257c18>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes17-expected_signal_codes17-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f8628064860> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280640f0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628257288> >emitted_signal_codes = ('A1', 'A2'), expected_signal_codes = ('A2', 'Ax') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280648d0> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628257288>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628257288>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes18-expected_signal_codes18-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f862815ceb8> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862815c780> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628267c18> >emitted_signal_codes = ('A1', 'B1'), expected_signal_codes = ('B1', 'A1') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862815c860> >signals = [<bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f8628267c18>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628267c18>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes19-expected_signal_codes19-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f86281e02b0> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86281e0358> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86282575e8> >emitted_signal_codes = ('A1', 'B1'), expected_signal_codes = ('B1', 'Ax') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86281e04a8> >signals = [<bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f86282575e8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86282575e8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes20-expected_signal_codes20-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f8608787b38> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8608787c18> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628257048> >emitted_signal_codes = ('A1', 'B1', 'B1') >expected_signal_codes = ('B1', 'A1', 'B1'), expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8608787668> >signals = [<bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f8628257048>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628257048>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f8628257048>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes21-expected_signal_codes21-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f86280bdb00> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280bd5f8> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86282573a8> >emitted_signal_codes = ('A2',), expected_signal_codes = ('A1',) >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280bd0b8> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86282573a8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes22-expected_signal_codes22-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f862813d7f0> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862813db00> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628677ee8> >emitted_signal_codes = ('A1',), expected_signal_codes = ('B1',) >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862813da20> >signals = [<bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f8628677ee8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes23-expected_signal_codes23-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f86281e6588> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86281e6f28> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86280a14c8> >emitted_signal_codes = ('A1',), expected_signal_codes = ('Bx',) >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86281e6438> >signals = [<bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f86280a14c8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes24-expected_signal_codes24-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f8628064e80> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280645f8> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86280a1af8> >emitted_signal_codes = ('A1', 'A1'), expected_signal_codes = ('A1', 'B1') >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280640f0> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86280a1af8>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f86280a1af8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes25-expected_signal_codes25-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f86281c48d0> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86281c4320> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628677a68> >emitted_signal_codes = ('A1', 'A1'), expected_signal_codes = ('A1', 'Bx') >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86281c42b0> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628677a68>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f8628677a68>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes26-expected_signal_codes26-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f86280642e8> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86281f2128> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628435e58> >emitted_signal_codes = ('A1', 'A1'), expected_signal_codes = ('B1', 'A1') >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86281f21d0> >signals = [<bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f8628435e58>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628435e58>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes27-expected_signal_codes27-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f862807d780> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862807d978> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86280a1288> >emitted_signal_codes = ('A1', 'B1'), expected_signal_codes = ('A1', 'A1') >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862807d2e8> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86280a1288>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86280a1288>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes28-expected_signal_codes28-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f86280e9d30> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280e9828> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86280a15e8> >emitted_signal_codes = ('A1', 'B1'), expected_signal_codes = ('B1', 'B1') >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280e9e80> >signals = [<bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f86280a15e8>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f86280a15e8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_none_order[emitted_signal_codes29-expected_signal_codes29-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f862815cc18> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862815c940> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628257a68> >emitted_signal_codes = ('A1', 'B1', 'B1') >expected_signal_codes = ('A1', 'A1', 'B1'), expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="none"), > ) > def test_wait_signals_none_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="none".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="none", > ) > >tests/test_wait_signal.py:739: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86281bfa90> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628257a68>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628257a68>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f8628257a68>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes0-expected_signal_codes0-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f8628088f28> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8628088a20> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86282571f8> >emitted_signal_codes = ('A1',), expected_signal_codes = ('A1',) >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8628088240> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86282571f8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes1-expected_signal_codes1-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f8628108ef0> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8628108940> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628435ee8> >emitted_signal_codes = ('A1',), expected_signal_codes = ('Ax',) >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8628108f60> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628435ee8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes2-expected_signal_codes2-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f86281c8668> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86281c86a0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86280a1af8> >emitted_signal_codes = ('A1', 'A1'), expected_signal_codes = ('A1', 'A1') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86281c8c18> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86280a1af8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86280a1af8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes3-expected_signal_codes3-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f86281b5630> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86281b56a0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86280a1c18> >emitted_signal_codes = ('A1', 'A1'), expected_signal_codes = ('A1', 'Ax') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86281b5a90> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86280a1c18>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86280a1c18>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes4-expected_signal_codes4-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f862864b860> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862864beb8> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86280a15e8> >emitted_signal_codes = ('A1', 'A1'), expected_signal_codes = ('Ax', 'Ax') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862864bb00> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86280a15e8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86280a15e8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes5-expected_signal_codes5-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f86280a55c0> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280a5ac8> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862813e0d8> >emitted_signal_codes = ('A1', 'A2'), expected_signal_codes = ('A1', 'A2') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280a5b70> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813e0d8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813e0d8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes6-expected_signal_codes6-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f86280bea20> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280be588> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862813e288> >emitted_signal_codes = ('A2', 'A1'), expected_signal_codes = ('A2', 'A1') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280be128> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813e288>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813e288>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes7-expected_signal_codes7-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f86087bfeb8> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86087bff60> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862813e678> >emitted_signal_codes = ('A1', 'B1'), expected_signal_codes = ('A1', 'B1') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86087bfe80> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813e678>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f862813e678>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes8-expected_signal_codes8-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f862807def0> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862807df98> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862813e9d8> >emitted_signal_codes = ('A1', 'A1', 'B1') >expected_signal_codes = ('A1', 'A1', 'B1'), expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862807d358> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813e9d8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813e9d8>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f862813e9d8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes9-expected_signal_codes9-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f86280bb390> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280bb048> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862813e8b8> >emitted_signal_codes = ('A1', 'A2', 'B1') >expected_signal_codes = ('A1', 'A2', 'B1'), expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280bb208> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813e8b8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813e8b8>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f862813e8b8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes10-expected_signal_codes10-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f862815b048> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862815b208> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628257798> >emitted_signal_codes = ('A1', 'B1', 'A1'), expected_signal_codes = ('A1', 'A1') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862815bf28> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628257798>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628257798>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes11-expected_signal_codes11-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f86281e6c50> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86281e6ac8> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628257ca8> >emitted_signal_codes = ('A1', 'B1', 'A1'), expected_signal_codes = ('Ax', 'A1') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86281e69e8> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628257ca8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628257ca8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes12-expected_signal_codes12-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f86087e5518> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86087e5cc0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628257a68> >emitted_signal_codes = ('B1', 'A1', 'A1', 'B1', 'A1') >expected_signal_codes = ('A1', 'B1'), expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86087e5be0> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628257a68>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f8628257a68>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes13-expected_signal_codes13-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f86281b5278> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86281b50f0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862813e8b8> >emitted_signal_codes = ('A1', 'A1', 'A1'), expected_signal_codes = ('A1', 'A1') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86281b5eb8> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813e8b8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813e8b8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes14-expected_signal_codes14-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f862807f1d0> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862808d1d0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862813e678> >emitted_signal_codes = ('A1', 'A1', 'A1'), expected_signal_codes = ('A1', 'Ax') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862808dbe0> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813e678>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813e678>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes15-expected_signal_codes15-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f86281e6128> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86281e65f8> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862813e9d8> >emitted_signal_codes = ('A1', 'A2', 'A1'), expected_signal_codes = ('A1', 'A1') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280f7da0> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813e9d8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813e9d8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes16-expected_signal_codes16-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f8608776cf8> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8608776048> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862813e048> >emitted_signal_codes = ('A2',), expected_signal_codes = ('A1',) >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8608776208> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813e048>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes17-expected_signal_codes17-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f86280d5ac8> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280d56a0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862813e678> >emitted_signal_codes = ('A1',), expected_signal_codes = ('B1',) >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280d5588> >signals = [<bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f862813e678>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes18-expected_signal_codes18-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f86280e7470> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280e71d0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862813ec18> >emitted_signal_codes = ('A1',), expected_signal_codes = ('Bx',) >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280e7be0> >signals = [<bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f862813ec18>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes19-expected_signal_codes19-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f8608760278> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86087601d0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628257a68> >emitted_signal_codes = ('A1', 'A1'), expected_signal_codes = ('A1', 'B1') >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8608760da0> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628257a68>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f8628257a68>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes20-expected_signal_codes20-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f86280e0860> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280e02e8> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86282573a8> >emitted_signal_codes = ('A1', 'A1'), expected_signal_codes = ('A1', 'Bx') >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280e0be0> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86282573a8>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f86282573a8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes21-expected_signal_codes21-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f8628088ac8> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8628088390> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86280a1948> >emitted_signal_codes = ('A1', 'A1'), expected_signal_codes = ('B1', 'A1') >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8628088cc0> >signals = [<bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f86280a1948>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86280a1948>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes22-expected_signal_codes22-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f8674222e10> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8674222358> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86280a10d8> >emitted_signal_codes = ('A1', 'B1'), expected_signal_codes = ('A1', 'A1') >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8674222128> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86280a10d8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86280a10d8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes23-expected_signal_codes23-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f86280a2eb8> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280a2fd0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628257c18> >emitted_signal_codes = ('A1', 'B1'), expected_signal_codes = ('B1', 'B1') >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280a23c8> >signals = [<bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f8628257c18>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f8628257c18>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes24-expected_signal_codes24-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f862817bd68> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862817ba90> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86280a1f78> >emitted_signal_codes = ('A1', 'B1', 'B1') >expected_signal_codes = ('A1', 'A1', 'B1'), expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862817b630> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86280a1f78>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86280a1f78>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f86280a1f78>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes25-expected_signal_codes25-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f862815b4e0> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862815b8d0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628257dc8> >emitted_signal_codes = ('A1', 'B1'), expected_signal_codes = ('B1', 'A1') >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862815b4a8> >signals = [<bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f8628257dc8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628257dc8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes26-expected_signal_codes26-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f8608713780> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8608713a58> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862813e798> >emitted_signal_codes = ('A1', 'B1'), expected_signal_codes = ('B1', 'Ax') >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8608713630> >signals = [<bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f862813e798>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813e798>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes27-expected_signal_codes27-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f86281b42e8> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86281b47b8> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862813ec18> >emitted_signal_codes = ('A1', 'B1', 'B1') >expected_signal_codes = ('B1', 'A1', 'B1'), expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86281b4908> >signals = [<bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f862813ec18>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813ec18>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f862813ec18>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_simple_order[emitted_signal_codes28-expected_signal_codes28-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f8628047a58> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8628047cc0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862813ed38> >emitted_signal_codes = ('A1', 'B1', 'B1') >expected_signal_codes = ('B1', 'B1', 'A1'), expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="simple"), > ) > def test_wait_signals_simple_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="simple".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="simple", > ) > >tests/test_wait_signal.py:761: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8628047048> >signals = [<bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f862813ed38>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f862813ed38>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813ed38>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes0-expected_signal_codes0-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f86280788d0> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280786d8> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628257798> >emitted_signal_codes = ('A1',), expected_signal_codes = ('A1',) >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8628078860> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628257798>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes1-expected_signal_codes1-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f86280e9278> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280e99b0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86280a1e58> >emitted_signal_codes = ('A1',), expected_signal_codes = ('Ax',) >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280e9898> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86280a1e58>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes2-expected_signal_codes2-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f86280cdda0> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280cd438> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86280a19d8> >emitted_signal_codes = ('A1', 'A1'), expected_signal_codes = ('A1', 'A1') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280cdcc0> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86280a19d8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86280a19d8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes3-expected_signal_codes3-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f86281f2908> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86281f2198> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86087ec3a8> >emitted_signal_codes = ('A1', 'A1'), expected_signal_codes = ('A1', 'Ax') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86281f2048> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087ec3a8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087ec3a8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes4-expected_signal_codes4-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f862809f400> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862809f278> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86087ec828> >emitted_signal_codes = ('A1', 'A1'), expected_signal_codes = ('Ax', 'Ax') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862809fd68> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087ec828>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087ec828>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes5-expected_signal_codes5-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f86280a5a58> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280a5b70> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8628257c18> >emitted_signal_codes = ('A1', 'A2'), expected_signal_codes = ('A1', 'A2') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280a5208> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628257c18>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8628257c18>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes6-expected_signal_codes6-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f86281e0d30> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86281e0b70> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862813eb88> >emitted_signal_codes = ('A2', 'A1'), expected_signal_codes = ('A2', 'A1') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86281e0c18> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813eb88>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813eb88>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes7-expected_signal_codes7-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f86282b89b0> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86282b8470> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862813ec18> >emitted_signal_codes = ('A1', 'B1'), expected_signal_codes = ('A1', 'B1') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86282b8198> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813ec18>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f862813ec18>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes8-expected_signal_codes8-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f860875f5f8> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f860875f2b0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86087ecdc8> >emitted_signal_codes = ('A1', 'A1', 'B1') >expected_signal_codes = ('A1', 'A1', 'B1'), expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f860875f320> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087ecdc8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087ecdc8>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f86087ecdc8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes9-expected_signal_codes9-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f862813df98> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862813d160> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86087ecc18> >emitted_signal_codes = ('A1', 'A2', 'B1') >expected_signal_codes = ('A1', 'A2', 'B1'), expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862813def0> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087ecc18>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087ecc18>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f86087ecc18>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes10-expected_signal_codes10-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f8628156080> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8628156550> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862813eb88> >emitted_signal_codes = ('A1', 'B1', 'A1'), expected_signal_codes = ('A1', 'A1') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8628156cc0> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813eb88>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813eb88>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes11-expected_signal_codes11-True] _ > >self = <test_wait_signal.TestCallback object at 0x7f862818f390> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862818f240> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86280a1af8> >emitted_signal_codes = ('A1', 'B1', 'A1'), expected_signal_codes = ('Ax', 'A1') >expected_signal_triggered = True > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862818f6a0> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86280a1af8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86280a1af8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes12-expected_signal_codes12-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f86282280f0> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8628228470> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86087ecdc8> >emitted_signal_codes = ('A2',), expected_signal_codes = ('A1',) >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8628228160> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087ecdc8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes13-expected_signal_codes13-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f86087bff98> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86087bf9b0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86087ec1f8> >emitted_signal_codes = ('A1',), expected_signal_codes = ('B1',) >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86087bf438> >signals = [<bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f86087ec1f8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes14-expected_signal_codes14-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f86086ddb00> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86086dd470> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86087ec828> >emitted_signal_codes = ('A1',), expected_signal_codes = ('Bx',) >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86086dddd8> >signals = [<bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f86087ec828>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes15-expected_signal_codes15-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f862815cba8> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86087047b8> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86087eca68> >emitted_signal_codes = ('A1', 'A1'), expected_signal_codes = ('A1', 'B1') >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8608704630> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087eca68>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f86087eca68>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes16-expected_signal_codes16-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f8628078ac8> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280789b0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862813e048> >emitted_signal_codes = ('A1', 'A1'), expected_signal_codes = ('A1', 'Bx') >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8628078240> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813e048>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f862813e048>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes17-expected_signal_codes17-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f862808d400> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862808de10> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86280a1288> >emitted_signal_codes = ('A1', 'A1'), expected_signal_codes = ('B1', 'A1') >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862808d4e0> >signals = [<bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f86280a1288>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86280a1288>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes18-expected_signal_codes18-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f86086ffc88> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86086ff4a8> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86087ec288> >emitted_signal_codes = ('A1', 'B1'), expected_signal_codes = ('A1', 'A1') >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86086ffbe0> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087ec288>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087ec288>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes19-expected_signal_codes19-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f8628127e48> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8628127898> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86087ec8b8> >emitted_signal_codes = ('A1', 'B1'), expected_signal_codes = ('B1', 'B1') >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8628127780> >signals = [<bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f86087ec8b8>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f86087ec8b8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes20-expected_signal_codes20-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f86087eb630> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86087eb0b8> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86087ec828> >emitted_signal_codes = ('A1', 'B1', 'B1') >expected_signal_codes = ('A1', 'A1', 'B1'), expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86087eb400> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087ec828>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087ec828>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f86087ec828>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes21-expected_signal_codes21-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f86742205c0> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8674220358> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862813e1f8> >emitted_signal_codes = ('A1', 'B1'), expected_signal_codes = ('B1', 'A1') >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8674220be0> >signals = [<bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f862813e1f8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813e1f8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes22-expected_signal_codes22-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f86281bf518> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86281bfcf8> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86087ecdc8> >emitted_signal_codes = ('A1', 'B1'), expected_signal_codes = ('B1', 'Ax') >expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86281bf2b0> >signals = [<bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f86087ecdc8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087ecdc8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes23-expected_signal_codes23-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f86280e7fd0> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280e76a0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86087ec3a8> >emitted_signal_codes = ('A1', 'B1', 'B1') >expected_signal_codes = ('B1', 'A1', 'B1'), expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280e7b38> >signals = [<bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f86087ec3a8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087ec3a8>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f86087ec3a8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes24-expected_signal_codes24-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f8628047c18> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8628047cc0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86087eca68> >emitted_signal_codes = ('A1', 'B1', 'B1') >expected_signal_codes = ('B1', 'B1', 'A1'), expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8628047198> >signals = [<bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f86087eca68>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f86087eca68>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087eca68>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestCallback.test_wait_signals_strict_order[emitted_signal_codes25-expected_signal_codes25-False] _ > >self = <test_wait_signal.TestCallback object at 0x7f8628127080> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8628127518> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8608733798> >emitted_signal_codes = ('A1', 'A1', 'A2', 'B1') >expected_signal_codes = ('A1', 'A2', 'B1'), expected_signal_triggered = False > > @pytest.mark.parametrize( > ("emitted_signal_codes", "expected_signal_codes", "expected_signal_triggered"), > get_waitsignals_cases_all(order="strict"), > ) > def test_wait_signals_strict_order( > self, > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, > ): > """Tests waitSignals() with order="strict".""" > self._test_wait_signals( > qtbot, > signaller, > emitted_signal_codes, > expected_signal_codes, > expected_signal_triggered, >> order="strict", > ) > >tests/test_wait_signal.py:783: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >tests/test_wait_signal.py:803: in _test_wait_signals > raising=False, >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86281276d8> >signals = [<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8608733798>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8608733798>, <bound PYQT_SIGNAL signal_args_2 of Signaller object at 0x7f8608733798>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_______________ TestAllSignalsAndArgs.test_empty_when_no_signal ________________ > >self = <test_wait_signal.TestAllSignalsAndArgs object at 0x7f86280a7f28> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280a7f60> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8608733048> > > def test_empty_when_no_signal(self, qtbot, signaller): > """Tests that all_signals_and_args is empty when no expected signal is emitted.""" > signals = get_mixed_signals_with_guaranteed_name(signaller) > with qtbot.waitSignals( > signals=signals, > timeout=200, > check_params_cbs=None, > order="none", >> raising=False, > ) as blocker: > >tests/test_wait_signal.py:913: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280a7278> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f8608733048>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8608733048>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8608733048>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >____________ TestAllSignalsAndArgs.test_non_empty_on_timeout_no_cb _____________ > >self = <test_wait_signal.TestAllSignalsAndArgs object at 0x7f86087a34e0> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86087a30b8> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86087ec1f8> > > def test_non_empty_on_timeout_no_cb(self, qtbot, signaller): > """ > Tests that all_signals_and_args contains the emitted signals. No callbacks for arg-evaluation are provided. The > signals are emitted out of order, causing a timeout. > """ > signals = get_mixed_signals_with_guaranteed_name(signaller) > with qtbot.waitSignals( > signals=signals, > timeout=200, > check_params_cbs=None, > order="simple", >> raising=False, > ) as blocker: > >tests/test_wait_signal.py:950: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86087a3128> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f86087ec1f8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087ec1f8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087ec1f8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >__________________ TestAllSignalsAndArgs.test_non_empty_no_cb __________________ > >self = <test_wait_signal.TestAllSignalsAndArgs object at 0x7f862809fb38> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862809fa58> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86087ec9d8> > > def test_non_empty_no_cb(self, qtbot, signaller): > """ > Tests that all_signals_and_args contains the emitted signals. No callbacks for arg-evaluation are provided. The > signals are emitted in order. > """ > signals = get_mixed_signals_with_guaranteed_name(signaller) > with qtbot.waitSignals( > signals=signals, > timeout=200, > check_params_cbs=None, > order="simple", >> raising=False, > ) as blocker: > >tests/test_wait_signal.py:971: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862809fc88> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f86087ec9d8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087ec9d8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087ec9d8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestWaitSignalsTimeoutErrorMessage.test_no_signal_emitted_with_some_callbacks[none] _ > >self = <test_wait_signal.TestWaitSignalsTimeoutErrorMessage object at 0x7f860875a0b8> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f860875ac50> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8608733c18> >order = 'none' > > @pytest.mark.parametrize("order", ["none", "simple", "strict"]) > def test_no_signal_emitted_with_some_callbacks(self, qtbot, signaller, order): > """ > Tests that the TimeoutError message contains that none of the expected signals were emitted, and lists > the expected signals correctly, with the name of the callbacks where applicable. > """ > > def my_callback(str_param, int_param): > return True > > with pytest.raises(TimeoutError) as excinfo: > with qtbot.waitSignals( > signals=get_mixed_signals_with_guaranteed_name(signaller), > timeout=200, > check_params_cbs=[None, None, my_callback], > order=order, >> raising=True, > ): > >tests/test_wait_signal.py:1124: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f860875a518> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f8608733c18>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8608733c18>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8608733c18>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestWaitSignalsTimeoutErrorMessage.test_no_signal_emitted_with_some_callbacks[simple] _ > >self = <test_wait_signal.TestWaitSignalsTimeoutErrorMessage object at 0x7f8674232438> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86742327b8> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86087ece58> >order = 'simple' > > @pytest.mark.parametrize("order", ["none", "simple", "strict"]) > def test_no_signal_emitted_with_some_callbacks(self, qtbot, signaller, order): > """ > Tests that the TimeoutError message contains that none of the expected signals were emitted, and lists > the expected signals correctly, with the name of the callbacks where applicable. > """ > > def my_callback(str_param, int_param): > return True > > with pytest.raises(TimeoutError) as excinfo: > with qtbot.waitSignals( > signals=get_mixed_signals_with_guaranteed_name(signaller), > timeout=200, > check_params_cbs=[None, None, my_callback], > order=order, >> raising=True, > ): > >tests/test_wait_signal.py:1124: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86742327f0> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f86087ece58>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087ece58>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087ece58>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestWaitSignalsTimeoutErrorMessage.test_no_signal_emitted_with_some_callbacks[strict] _ > >self = <test_wait_signal.TestWaitSignalsTimeoutErrorMessage object at 0x7f8608776780> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8608776dd8> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86087333a8> >order = 'strict' > > @pytest.mark.parametrize("order", ["none", "simple", "strict"]) > def test_no_signal_emitted_with_some_callbacks(self, qtbot, signaller, order): > """ > Tests that the TimeoutError message contains that none of the expected signals were emitted, and lists > the expected signals correctly, with the name of the callbacks where applicable. > """ > > def my_callback(str_param, int_param): > return True > > with pytest.raises(TimeoutError) as excinfo: > with qtbot.waitSignals( > signals=get_mixed_signals_with_guaranteed_name(signaller), > timeout=200, > check_params_cbs=[None, None, my_callback], > order=order, >> raising=True, > ): > >tests/test_wait_signal.py:1124: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8608776ba8> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f86087333a8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087333a8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087333a8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestWaitSignalsTimeoutErrorMessage.test_no_signal_emitted_no_callbacks[none] _ > >self = <test_wait_signal.TestWaitSignalsTimeoutErrorMessage object at 0x7f862818fbe0> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862818f550> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8608733a68> >order = 'none' > > @pytest.mark.parametrize("order", ["none", "simple", "strict"]) > def test_no_signal_emitted_no_callbacks(self, qtbot, signaller, order): > """ > Tests that the TimeoutError message contains that none of the expected signals were emitted, and lists > the expected signals correctly (without any callbacks). > """ > with pytest.raises(TimeoutError) as excinfo: > with qtbot.waitSignals( > signals=get_mixed_signals_with_guaranteed_name(signaller), > timeout=200, > check_params_cbs=None, > order=order, >> raising=True, > ): > >tests/test_wait_signal.py:1145: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862818fba8> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f8608733a68>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8608733a68>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8608733a68>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestWaitSignalsTimeoutErrorMessage.test_no_signal_emitted_no_callbacks[simple] _ > >self = <test_wait_signal.TestWaitSignalsTimeoutErrorMessage object at 0x7f86281567f0> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8628156630> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f8608733ca8> >order = 'simple' > > @pytest.mark.parametrize("order", ["none", "simple", "strict"]) > def test_no_signal_emitted_no_callbacks(self, qtbot, signaller, order): > """ > Tests that the TimeoutError message contains that none of the expected signals were emitted, and lists > the expected signals correctly (without any callbacks). > """ > with pytest.raises(TimeoutError) as excinfo: > with qtbot.waitSignals( > signals=get_mixed_signals_with_guaranteed_name(signaller), > timeout=200, > check_params_cbs=None, > order=order, >> raising=True, > ): > >tests/test_wait_signal.py:1145: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86281566a0> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f8608733ca8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8608733ca8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f8608733ca8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_ TestWaitSignalsTimeoutErrorMessage.test_no_signal_emitted_no_callbacks[strict] _ > >self = <test_wait_signal.TestWaitSignalsTimeoutErrorMessage object at 0x7f86280cdbe0> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280cd320> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86087b6828> >order = 'strict' > > @pytest.mark.parametrize("order", ["none", "simple", "strict"]) > def test_no_signal_emitted_no_callbacks(self, qtbot, signaller, order): > """ > Tests that the TimeoutError message contains that none of the expected signals were emitted, and lists > the expected signals correctly (without any callbacks). > """ > with pytest.raises(TimeoutError) as excinfo: > with qtbot.waitSignals( > signals=get_mixed_signals_with_guaranteed_name(signaller), > timeout=200, > check_params_cbs=None, > order=order, >> raising=True, > ): > >tests/test_wait_signal.py:1145: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280cd9e8> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f86087b6828>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087b6828>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087b6828>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >____ TestWaitSignalsTimeoutErrorMessage.test_none_order_one_signal_emitted _____ > >self = <test_wait_signal.TestWaitSignalsTimeoutErrorMessage object at 0x7f862814f0b8> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f862814f6a0> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86087b6f78> > > def test_none_order_one_signal_emitted(self, qtbot, signaller): > """ > When expecting 3 signals but only one of them is emitted, test that the TimeoutError message contains > the emitted signal and the 2 missing expected signals. order is set to "none". > """ > > def my_callback_1(str_param, int_param): > return str_param == "1" and int_param == 1 > > def my_callback_2(str_param, int_param): > return str_param == "2" and int_param == 2 > > with pytest.raises(TimeoutError) as excinfo: > with qtbot.waitSignals( > signals=get_mixed_signals_with_guaranteed_name(signaller), > timeout=200, > check_params_cbs=[None, my_callback_1, my_callback_2], > order="none", >> raising=True, > ): > >tests/test_wait_signal.py:1172: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f862814f7f0> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f86087b6f78>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087b6f78>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087b6f78>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >__ TestWaitSignalsTimeoutErrorMessage.test_simple_order_first_signal_emitted ___ > >self = <test_wait_signal.TestWaitSignalsTimeoutErrorMessage object at 0x7f86741ef358> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86741ef710> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f862813e1f8> > > def test_simple_order_first_signal_emitted(self, qtbot, signaller): > """ > When expecting 3 signals in a simple order but only the first one is emitted, test that the > TimeoutError message contains the emitted signal and the 2nd+3rd missing expected signals. > """ > with pytest.raises(TimeoutError) as excinfo: > with qtbot.waitSignals( > signals=get_mixed_signals_with_guaranteed_name(signaller), > timeout=200, > check_params_cbs=None, > order="simple", >> raising=True, > ): > >tests/test_wait_signal.py:1197: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86741ef9b0> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f862813e1f8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813e1f8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f862813e1f8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >__ TestWaitSignalsTimeoutErrorMessage.test_simple_order_second_signal_emitted __ > >self = <test_wait_signal.TestWaitSignalsTimeoutErrorMessage object at 0x7f86281f7fd0> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86281f7320> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86087b6dc8> > > def test_simple_order_second_signal_emitted(self, qtbot, signaller): > """ > When expecting 3 signals in a simple order but only the second one is emitted, test that the > TimeoutError message contains the emitted signal and all 3 missing expected signals. > """ > with pytest.raises(TimeoutError) as excinfo: > with qtbot.waitSignals( > signals=get_mixed_signals_with_guaranteed_name(signaller), > timeout=200, > check_params_cbs=None, > order="simple", >> raising=True, > ): > >tests/test_wait_signal.py:1217: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86281f73c8> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f86087b6dc8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087b6dc8>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087b6dc8>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >________ TestWaitSignalsTimeoutErrorMessage.test_strict_order_violation ________ > >self = <test_wait_signal.TestWaitSignalsTimeoutErrorMessage object at 0x7f86280f77b8> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f86280f7550> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86087b6678> > > def test_strict_order_violation(self, qtbot, signaller): > """ > When expecting 3 signals in a strict order but only the second and then the first one is emitted, test that the > TimeoutError message contains the order violation, the 2 emitted signals and all 3 missing expected > signals. > """ > with pytest.raises(TimeoutError) as excinfo: > with qtbot.waitSignals( > signals=get_mixed_signals_with_guaranteed_name(signaller), > timeout=200, > check_params_cbs=None, > order="strict", >> raising=True, > ): > >tests/test_wait_signal.py:1243: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f86280f7400> >signals = [<bound PYQT_SIGNAL signal of Signaller object at 0x7f86087b6678>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087b6678>, <bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087b6678>] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >_______ TestWaitSignalsTimeoutErrorMessage.test_self_defined_signal_name _______ > >self = <test_wait_signal.TestWaitSignalsTimeoutErrorMessage object at 0x7f86280bdef0> >qtbot = <pytestqt.qtbot.QtBot object at 0x7f8628131518> >signaller = <test_wait_signal.signaller.<locals>.Signaller object at 0x7f86087ec168> > > def test_self_defined_signal_name(self, qtbot, signaller): > """ > Tests that the waitSignals implementation prefers the user-provided signal names over the names that can > be determined at runtime from the signal objects themselves. > """ > > def my_cb(str_param, int_param): > return True > > with pytest.raises(TimeoutError) as excinfo: > signals = [ > (signaller.signal, "signal_without_args"), > (signaller.signal_args, "signal_with_args"), > ] > callbacks = [None, my_cb] > with qtbot.waitSignals( > signals=signals, > timeout=200, > check_params_cbs=callbacks, > order="none", >> raising=True, > ): > >tests/test_wait_signal.py:1310: >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ >pytestqt/qtbot.py:433: in waitSignals > blocker.add_signals(signals) >pytestqt/wait_signal.py:336: in add_signals > self._determine_unique_signals(signals) >_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ > >self = <pytestqt.wait_signal.MultiSignalBlocker object at 0x7f8628131b00> >signals = [(<bound PYQT_SIGNAL signal of Signaller object at 0x7f86087ec168>, 'signal_without_args'), (<bound PYQT_SIGNAL signal_args of Signaller object at 0x7f86087ec168>, 'signal_with_args')] > > def _determine_unique_signals(self, signals): > # create a map that maps from a unique signal to a list of indices > # (positions) where this signal is expected (in case order matters) > signals_as_str = [ > str(self.get_signal_from_potential_signal_tuple(signal)) > for signal in signals > ] > # maps from a signal-string to one of the signal instances (the first one found) > signal_str_to_unique_signal = {} > for index, signal_str in enumerate(signals_as_str): > signal = self.get_signal_from_potential_signal_tuple(signals[index]) > potential_tuple = signals[index] > if signal_str not in signal_str_to_unique_signal: > unique_signal_tuple = potential_tuple > signal_str_to_unique_signal[signal_str] = signal >> self._signals_map[signal] = [index] # create a new list >E TypeError: unhashable type: 'PyQt5.QtCore.pyqtBoundSignal' > >pytestqt/wait_signal.py:365: TypeError >=============================== warnings summary =============================== >tests/test_wait_signal.py::test_raising_by_default_overridden[qt_wait_signal_raising] > /var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0/pytestqt/plugin.py:223: DeprecationWarning: qt_wait_signal_raising is deprecated, use qt_default_raising instead. > DeprecationWarning, > >-- Docs: https://docs.pytest.org/en/stable/warnings.html >=========================== short test summary info ============================ >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[200-300-400-True-explicit_wait-True] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[200-300-400-True-explicit_wait-False] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[200-300-400-True-context_manager_wait-True] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[200-300-400-True-context_manager_wait-False] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[300-200-400-True-explicit_wait-True] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[300-200-400-True-explicit_wait-False] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[300-200-400-True-context_manager_wait-True] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[300-200-400-True-context_manager_wait-False] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[200-300-None-True-explicit_wait-True] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[200-300-None-True-explicit_wait-False] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[200-300-None-True-context_manager_wait-True] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[200-300-None-True-context_manager_wait-False] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[400-400-200-False-explicit_wait-True] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[400-400-200-False-explicit_wait-False] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[400-400-200-False-context_manager_wait-True] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[400-400-200-False-context_manager_wait-False] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[200-400-300-False-explicit_wait-True] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[200-400-300-False-explicit_wait-False] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[200-400-300-False-context_manager_wait-True] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[200-400-300-False-context_manager_wait-False] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[400-200-200-False-explicit_wait-True] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[400-200-200-False-explicit_wait-False] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[400-200-200-False-context_manager_wait-True] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[400-200-200-False-context_manager_wait-False] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[200-1000-400-False-explicit_wait-True] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[200-1000-400-False-explicit_wait-False] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[200-1000-400-False-context_manager_wait-True] >FAILED tests/test_wait_signal.py::test_signal_triggered_multiple[200-1000-400-False-context_manager_wait-False] >FAILED tests/test_wait_signal.py::test_explicit_emit_multiple - TypeError: un... >FAILED tests/test_wait_signal.py::test_blockers_handle_exceptions[True-multiple] >FAILED tests/test_wait_signal.py::test_blockers_handle_exceptions[False-multiple] >FAILED tests/test_wait_signal.py::test_wait_twice[True-True] - TypeError: unh... >FAILED tests/test_wait_signal.py::test_wait_twice[False-True] - TypeError: un... >FAILED tests/test_wait_signal.py::TestArgs::test_multi - TypeError: unhashabl... >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes0-expected_signal_codes0-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes1-expected_signal_codes1-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes2-expected_signal_codes2-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes3-expected_signal_codes3-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes4-expected_signal_codes4-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes5-expected_signal_codes5-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes6-expected_signal_codes6-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes7-expected_signal_codes7-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes8-expected_signal_codes8-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes9-expected_signal_codes9-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes10-expected_signal_codes10-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes11-expected_signal_codes11-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes12-expected_signal_codes12-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes13-expected_signal_codes13-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes14-expected_signal_codes14-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes15-expected_signal_codes15-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes16-expected_signal_codes16-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes17-expected_signal_codes17-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes18-expected_signal_codes18-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes19-expected_signal_codes19-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes20-expected_signal_codes20-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes21-expected_signal_codes21-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes22-expected_signal_codes22-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes23-expected_signal_codes23-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes24-expected_signal_codes24-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes25-expected_signal_codes25-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes26-expected_signal_codes26-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes27-expected_signal_codes27-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes28-expected_signal_codes28-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_none_order[emitted_signal_codes29-expected_signal_codes29-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes0-expected_signal_codes0-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes1-expected_signal_codes1-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes2-expected_signal_codes2-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes3-expected_signal_codes3-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes4-expected_signal_codes4-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes5-expected_signal_codes5-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes6-expected_signal_codes6-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes7-expected_signal_codes7-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes8-expected_signal_codes8-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes9-expected_signal_codes9-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes10-expected_signal_codes10-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes11-expected_signal_codes11-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes12-expected_signal_codes12-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes13-expected_signal_codes13-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes14-expected_signal_codes14-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes15-expected_signal_codes15-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes16-expected_signal_codes16-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes17-expected_signal_codes17-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes18-expected_signal_codes18-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes19-expected_signal_codes19-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes20-expected_signal_codes20-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes21-expected_signal_codes21-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes22-expected_signal_codes22-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes23-expected_signal_codes23-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes24-expected_signal_codes24-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes25-expected_signal_codes25-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes26-expected_signal_codes26-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes27-expected_signal_codes27-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_simple_order[emitted_signal_codes28-expected_signal_codes28-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes0-expected_signal_codes0-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes1-expected_signal_codes1-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes2-expected_signal_codes2-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes3-expected_signal_codes3-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes4-expected_signal_codes4-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes5-expected_signal_codes5-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes6-expected_signal_codes6-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes7-expected_signal_codes7-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes8-expected_signal_codes8-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes9-expected_signal_codes9-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes10-expected_signal_codes10-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes11-expected_signal_codes11-True] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes12-expected_signal_codes12-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes13-expected_signal_codes13-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes14-expected_signal_codes14-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes15-expected_signal_codes15-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes16-expected_signal_codes16-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes17-expected_signal_codes17-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes18-expected_signal_codes18-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes19-expected_signal_codes19-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes20-expected_signal_codes20-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes21-expected_signal_codes21-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes22-expected_signal_codes22-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes23-expected_signal_codes23-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes24-expected_signal_codes24-False] >FAILED tests/test_wait_signal.py::TestCallback::test_wait_signals_strict_order[emitted_signal_codes25-expected_signal_codes25-False] >FAILED tests/test_wait_signal.py::TestAllSignalsAndArgs::test_empty_when_no_signal >FAILED tests/test_wait_signal.py::TestAllSignalsAndArgs::test_non_empty_on_timeout_no_cb >FAILED tests/test_wait_signal.py::TestAllSignalsAndArgs::test_non_empty_no_cb >FAILED tests/test_wait_signal.py::TestWaitSignalsTimeoutErrorMessage::test_no_signal_emitted_with_some_callbacks[none] >FAILED tests/test_wait_signal.py::TestWaitSignalsTimeoutErrorMessage::test_no_signal_emitted_with_some_callbacks[simple] >FAILED tests/test_wait_signal.py::TestWaitSignalsTimeoutErrorMessage::test_no_signal_emitted_with_some_callbacks[strict] >FAILED tests/test_wait_signal.py::TestWaitSignalsTimeoutErrorMessage::test_no_signal_emitted_no_callbacks[none] >FAILED tests/test_wait_signal.py::TestWaitSignalsTimeoutErrorMessage::test_no_signal_emitted_no_callbacks[simple] >FAILED tests/test_wait_signal.py::TestWaitSignalsTimeoutErrorMessage::test_no_signal_emitted_no_callbacks[strict] >FAILED tests/test_wait_signal.py::TestWaitSignalsTimeoutErrorMessage::test_none_order_one_signal_emitted >FAILED tests/test_wait_signal.py::TestWaitSignalsTimeoutErrorMessage::test_simple_order_first_signal_emitted >FAILED tests/test_wait_signal.py::TestWaitSignalsTimeoutErrorMessage::test_simple_order_second_signal_emitted >FAILED tests/test_wait_signal.py::TestWaitSignalsTimeoutErrorMessage::test_strict_order_violation >FAILED tests/test_wait_signal.py::TestWaitSignalsTimeoutErrorMessage::test_self_defined_signal_name >====== 133 failed, 199 passed, 3 skipped, 1 xfailed, 1 warning in 21.22s ======= > * ERROR: dev-python/pytest-qt-3.3.0::gentoo failed (test phase): > * Failed to run 'pytest_qt_test' > * > * Call stack: > * ebuild.sh, line 125: Called src_test > * environment, line 3129: Called distutils-r1_src_test > * environment, line 1363: Called _distutils-r1_run_foreach_impl 'python_test' > * environment, line 528: Called python_foreach_impl 'distutils-r1_run_phase' 'python_test' > * environment, line 2715: Called multibuild_foreach_variant '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' > * environment, line 2146: Called _multibuild_run '_python_multibuild_wrapper' 'distutils-r1_run_phase' 'python_test' > * environment, line 2144: Called _python_multibuild_wrapper 'distutils-r1_run_phase' 'python_test' > * environment, line 936: Called distutils-r1_run_phase 'python_test' > * environment, line 1300: Called python_test > * environment, line 3071: Called virtx 'pytest_qt_test' > * environment, line 3917: Called die > * The specific snippet of code: > * [[ ${retval} -ne 0 ]] && die "Failed to run '$@'"; > * > * If you need support, post the output of `emerge --info '=dev-python/pytest-qt-3.3.0::gentoo'`, > * the complete build log and the output of `emerge -pqv '=dev-python/pytest-qt-3.3.0::gentoo'`. > * The complete build log is located at '/var/log/emerge-log/build/dev-python/pytest-qt-3.3.0:20200920-102226.log'. > * For convenience, a symlink to the build log is located at '/var/tmp/portage/dev-python/pytest-qt-3.3.0/temp/build.log'. > * The ebuild environment file is located at '/var/tmp/portage/dev-python/pytest-qt-3.3.0/temp/environment'. > * Working directory: '/var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0' > * S: '/var/tmp/portage/dev-python/pytest-qt-3.3.0/work/pytest-qt-3.3.0'
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 743790
: 661662