==> Building on scovillain ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list created directory packages/python-libtmux ./ .SRCINFO 934 100% 0.00kB/s 0:00:00 934 100% 0.00kB/s 0:00:00 (xfr#1, to-chk=7/9) .nvchecker.toml 50 100% 48.83kB/s 0:00:00 50 100% 48.83kB/s 0:00:00 (xfr#2, to-chk=6/9) LICENSE 646 100% 630.86kB/s 0:00:00 646 100% 630.86kB/s 0:00:00 (xfr#3, to-chk=5/9) PKGBUILD 1,885 100% 1.80MB/s 0:00:00 1,885 100% 1.80MB/s 0:00:00 (xfr#4, to-chk=4/9) REUSE.toml 375 100% 366.21kB/s 0:00:00 375 100% 366.21kB/s 0:00:00 (xfr#5, to-chk=3/9) python-libtmux-0.58.0-1.log 785 100% 766.60kB/s 0:00:00 785 100% 766.60kB/s 0:00:00 (xfr#6, to-chk=2/9) LICENSES/ LICENSES/0BSD.txt -> ../LICENSE sent 2,960 bytes received 190 bytes 2,100.00 bytes/sec total size is 4,097 speedup is 1.30 ==> Running pkgctl build --arch riscv64 on remote host... ==> WARNING: invalid architecture: riscv64 ==> Updating pacman database cache [?25l:: Synchronizing package databases... core downloading... extra downloading... multilib downloading... [?25h==> Building python-libtmux  -> repo: extra  -> arch: riscv64  -> worker: felix-6 ==> Building python-libtmux for [extra] (riscv64) ]3008;start=ddad08da2f6d484bbc5866afe40376cc;user=root;hostname=scovillain.felixc.at;machineid=5bc7e45048834d3a82e1c93a2f026cc1;bootid=a2e38e35fa0243229d257f4b3a3bf224;pid=1256971;comm=systemd-nspawn;container=arch-nspawn-1256971;type=container\]11;?\]2;🔵 Container arch-nspawn-1256971 on scovillain.felixc.at\[?25l:: Synchronizing package databases... core downloading... extra downloading... :: Starting full system upgrade... there is nothing to do [?25h[!p]104\[?7h]3008;end=ddad08da2f6d484bbc5866afe40376cc\==> Building in chroot for [extra] (riscv64)... ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [felix-6]...done ==> Making package: python-libtmux 0.58.0-1 (Thu Jun 11 01:48:17 2026) ==> Retrieving sources...  -> Downloading libtmux-0.58.0.tar.gz... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00:01 0 100 126.6k 0 126.6k 0 0 47460 0 00:02 126.7k 100 513.0k 0 513.0k 0 0 159.0k 0 00:03 126.7k 100 513.0k 0 513.0k 0 0 159.0k 0 00:03 126.7k 100 513.0k 0 513.0k 0 0 159.0k 0 00:03 126.7k ==> Validating source files with sha512sums... libtmux-0.58.0.tar.gz ... Passed ==> Validating source files with b2sums... libtmux-0.58.0.tar.gz ... Passed ]3008;start=c4f0587583944f0ab4b814dcca21a68c;user=root;hostname=scovillain.felixc.at;machineid=5bc7e45048834d3a82e1c93a2f026cc1;bootid=a2e38e35fa0243229d257f4b3a3bf224;pid=1260045;comm=systemd-nspawn;container=arch-nspawn-1260045;type=container\]11;?\]2;🔵 Container arch-nspawn-1260045 on scovillain.felixc.at\==> Making package: python-libtmux 0.58.0-1 (Thu Jun 11 01:48:56 2026) ==> Checking runtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (3) New Version Net Change Download Size extra/libutempter 1.2.3-1 0.02 MiB extra/python-typing_extensions 4.15.0-3 0.52 MiB extra/tmux 3.6_b-2 1.09 MiB 0.50 MiB Total Download Size: 0.50 MiB Total Installed Size: 1.63 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... tmux-3.6_b-2-riscv64 downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing python-typing_extensions... installing libutempter... installing tmux... :: Running post-transaction hooks... (1/2) Creating temporary files... (2/2) Arming ConditionNeedsUpdate... [?25h==> Checking buildtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (16) New Version Net Change Download Size extra/python-editables 0.6-1 0.04 MiB extra/python-iniconfig 2.3.0-1 0.07 MiB extra/python-packaging 26.2-1 1.23 MiB extra/python-pathspec 1.1.1-1 0.47 MiB extra/python-pluggy 1.6.0-3.1 0.23 MiB extra/python-pygments 2.20.0-1 15.36 MiB extra/python-pyproject-hooks 1.2.0-6 0.11 MiB extra/python-trove-classifiers 2026.6.1.19-1 0.16 MiB core/procps-ng 4.0.6-1 2.56 MiB extra/python-build 1.4.3-1 0.26 MiB extra/python-hatchling 1.29.0-1 1.06 MiB extra/python-installer 1.0.0-1 0.20 MiB extra/python-pytest 1:8.4.2-3 4.69 MiB extra/python-pytest-mock 3.14.1-1 0.11 MiB extra/python-pytest-rerunfailures 16.3-1 0.13 MiB 0.03 MiB extra/python-wheel 0.46.3-1 0.31 MiB Total Download Size: 0.03 MiB Total Installed Size: 27.00 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... python-pytest-rerunfailures-16.3-1-any downloading... checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing python-packaging... installing python-pyproject-hooks... installing python-build... Optional dependencies for python-build python-pip: to use as the Python package installer (default) python-uv: to use as the Python package installer python-virtualenv: to use virtualenv for build isolation installing python-installer... installing python-editables... installing python-pathspec... Optional dependencies for python-pathspec python-google-re2: re2 backend installing python-pluggy... installing python-trove-classifiers... installing python-hatchling... installing python-wheel... Optional dependencies for python-wheel python-keyring: for wheel.signatures python-xdg: for wheel.signatures python-setuptools: for legacy bdist_wheel subcommand installing python-iniconfig... installing python-pygments... installing python-pytest... installing python-pytest-mock... installing python-pytest-rerunfailures... Optional dependencies for python-pytest-rerunfailures python-pytest-xdist: for recovering from crashes installing procps-ng... :: Running post-transaction hooks... (1/1) Arming ConditionNeedsUpdate... [?25h==> Retrieving sources...  -> Found libtmux-0.58.0.tar.gz ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources...  -> Extracting libtmux-0.58.0.tar.gz with bsdtar ==> Starting build()... * Building wheel... Successfully built libtmux-0.58.0-py3-none-any.whl ==> Starting check()... ============================= test session starts ============================== platform linux -- Python 3.14.5, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python cachedir: .pytest_cache rootdir: /build/python-libtmux/src/libtmux-0.58.0 configfile: pyproject.toml plugins: libtmux-0.58.0, rerunfailures-16.3, mock-3.14.1 collecting ... collected 918 items / 6 deselected / 912 selected tests/_internal/test_query_list.py::test_filter[items0-None-expected_result0] PASSED [ 0%] tests/_internal/test_query_list.py::test_filter[items1-filter_expr1-expected_result1] PASSED [ 0%] tests/_internal/test_query_list.py::test_filter[items2-filter_expr2-expected_result2] PASSED [ 0%] tests/_internal/test_query_list.py::test_filter[items3-filter_expr3-expected_result3] PASSED [ 0%] tests/_internal/test_query_list.py::test_filter[items4-None-expected_result4] PASSED [ 0%] tests/_internal/test_query_list.py::test_filter[items5-None-expected_result5] PASSED [ 0%] tests/_internal/test_query_list.py::test_filter[items6-None-expected_result6] PASSED [ 0%] tests/_internal/test_query_list.py::test_filter[items7-None-expected_result7] PASSED [ 0%] tests/_internal/test_query_list.py::test_filter[items8-filter_expr8-expected_result8] PASSED [ 0%] tests/_internal/test_query_list.py::test_filter[items9-filter_expr9-expected_result9] PASSED [ 1%] tests/_internal/test_query_list.py::test_filter[items10-filter_expr10-expected_result10] PASSED [ 1%] tests/_internal/test_query_list.py::test_filter[items11-filter_expr11-expected_result11] PASSED [ 1%] tests/_internal/test_query_list.py::test_filter[items12-filter_expr12-expected_result12] PASSED [ 1%] tests/_internal/test_query_list.py::test_filter[items13-filter_expr13-expected_result13] PASSED [ 1%] tests/_internal/test_query_list.py::test_filter[items14-filter_expr14-expected_result14] PASSED [ 1%] tests/_internal/test_query_list.py::test_filter[items15-filter_expr15-expected_result15] PASSED [ 1%] tests/_internal/test_query_list.py::test_filter[items16-filter_expr16-expected_result16] PASSED [ 1%] tests/_internal/test_query_list.py::test_filter[items17-filter_expr17-expected_result17] PASSED [ 1%] tests/_internal/test_query_list.py::test_filter[items18-filter_expr18-expected_result18] PASSED [ 2%] tests/_internal/test_query_list.py::test_filter[items19-filter_expr19-expected_result19] PASSED [ 2%] tests/_internal/test_query_list.py::test_filter[items20-filter_expr20-expected_result20] PASSED [ 2%] tests/_internal/test_query_list.py::test_filter[items21-filter_expr21-expected_result21] PASSED [ 2%] tests/_internal/test_query_list.py::test_filter[items22-filter_expr22-expected_result22] PASSED [ 2%] tests/_internal/test_query_list.py::test_filter[items23-filter_expr23-expected_result23] PASSED [ 2%] tests/_internal/test_query_list.py::test_filter[items24-filter_expr24-expected_result24] PASSED [ 2%] tests/_internal/test_query_list.py::test_filter[items25-filter_expr25-expected_result25] PASSED [ 2%] tests/_internal/test_query_list.py::test_filter[items26-filter_expr26-expected_result26] PASSED [ 2%] tests/_internal/test_query_list.py::test_filter[items27-filter_expr27-expected_result27] PASSED [ 3%] tests/_internal/test_query_list.py::test_filter[items28-filter_expr28-expected_result28] PASSED [ 3%] tests/_internal/test_query_list.py::test_filter[items29-filter_expr29-expected_result29] PASSED [ 3%] tests/_internal/test_query_list.py::test_filter[items30-filter_expr30-expected_result30] PASSED [ 3%] tests/_internal/test_query_list.py::test_filter[items31-filter_expr31-expected_result31] PASSED [ 3%] tests/_internal/test_query_list.py::test_filter[items32-filter_expr32-expected_result32] PASSED [ 3%] tests/_internal/test_query_list.py::test_filter[items33-None-expected_result33] PASSED [ 3%] tests/_internal/test_query_list.py::test_filter[items34-filter_expr34-expected_result34] PASSED [ 3%] tests/_internal/test_query_list.py::test_filter[items35-filter_expr35-expected_result35] PASSED [ 3%] tests/_internal/test_query_list.py::test_filter[items36--expected_result36] PASSED [ 4%] tests/_internal/test_query_list.py::test_filter[items37--expected_result37] PASSED [ 4%] tests/legacy_api/test_common.py::test_allows_master_version PASSED [ 4%] tests/legacy_api/test_common.py::test_allows_next_version PASSED [ 4%] tests/legacy_api/test_common.py::test_get_version_openbsd PASSED [ 4%] tests/legacy_api/test_common.py::test_get_version_too_low PASSED [ 4%] tests/legacy_api/test_common.py::test_ignores_letter_versions PASSED [ 4%] tests/legacy_api/test_common.py::test_error_version_less_1_7 PASSED [ 4%] tests/legacy_api/test_common.py::test_has_version PASSED [ 4%] tests/legacy_api/test_common.py::test_has_gt_version PASSED [ 5%] tests/legacy_api/test_common.py::test_has_gte_version PASSED [ 5%] tests/legacy_api/test_common.py::test_has_lt_version PASSED [ 5%] tests/legacy_api/test_common.py::test_has_lte_version PASSED [ 5%] tests/legacy_api/test_common.py::test_tmux_cmd_raises_on_not_found PASSED [ 5%] tests/legacy_api/test_common.py::test_tmux_cmd_unicode PASSED [ 5%] tests/legacy_api/test_common.py::test_session_check_name[-True-empty] PASSED [ 5%] tests/legacy_api/test_common.py::test_session_check_name[None-True-empty] PASSED [ 5%] tests/legacy_api/test_common.py::test_session_check_name[my great session.-True-contains periods] PASSED [ 5%] tests/legacy_api/test_common.py::test_session_check_name[name: great session-True-contains colons] PASSED [ 6%] tests/legacy_api/test_common.py::test_session_check_name[new great session-False-None] PASSED [ 6%] tests/legacy_api/test_common.py::test_session_check_name[ajf8a3fa83fads,,,a-False-None] PASSED [ 6%] tests/legacy_api/test_common.py::test_get_libtmux_version PASSED [ 6%] tests/legacy_api/test_pane.py::test_resize_pane_raises_deprecated_error PASSED [ 6%] tests/legacy_api/test_pane.py::test_select_pane_raises_deprecated_error PASSED [ 6%] tests/legacy_api/test_pane.py::test_split_window_raises_deprecated_error PASSED [ 6%] tests/legacy_api/test_pane.py::test_pane_get_raises_deprecated_error PASSED [ 6%] tests/legacy_api/test_pane.py::test_pane_getitem_raises_deprecated_error PASSED [ 6%] tests/legacy_api/test_server.py::test_kill_server_raises_deprecated_error PASSED [ 7%] tests/legacy_api/test_server.py::test_server_get_by_id_raises_deprecated_error PASSED [ 7%] tests/legacy_api/test_server.py::test_server_where_raises_deprecated_error PASSED [ 7%] tests/legacy_api/test_server.py::test_server_find_where_raises_deprecated_error PASSED [ 7%] tests/legacy_api/test_server.py::test_server_list_sessions_raises_deprecated_error PASSED [ 7%] tests/legacy_api/test_server.py::test_server_children_raises_deprecated_error PASSED [ 7%] tests/legacy_api/test_server.py::test_server__sessions_raises_deprecated_error PASSED [ 7%] tests/legacy_api/test_server.py::test_server__list_sessions_raises_deprecated_error PASSED [ 7%] tests/legacy_api/test_server.py::test_server__list_windows_raises_deprecated_error PASSED [ 7%] tests/legacy_api/test_server.py::test_server__update_windows_raises_deprecated_error PASSED [ 8%] tests/legacy_api/test_server.py::test_server__list_panes_raises_deprecated_error PASSED [ 8%] tests/legacy_api/test_server.py::test_server__update_panes_raises_deprecated_error PASSED [ 8%] tests/legacy_api/test_session.py::test_attached_window_raises_deprecated_error PASSED [ 8%] tests/legacy_api/test_session.py::test_attached_pane_raises_deprecated_error PASSED [ 8%] tests/legacy_api/test_session.py::test_attach_session_raises_deprecated_error PASSED [ 8%] tests/legacy_api/test_session.py::test_kill_session_raises_deprecated_error PASSED [ 8%] tests/legacy_api/test_session.py::test_session_get_raises_deprecated_error PASSED [ 8%] tests/legacy_api/test_session.py::test_session_getitem_raises_deprecated_error PASSED [ 8%] tests/legacy_api/test_session.py::test_session_get_by_id_raises_deprecated_error PASSED [ 8%] tests/legacy_api/test_session.py::test_session_where_raises_deprecated_error PASSED [ 9%] tests/legacy_api/test_session.py::test_session_find_where_raises_deprecated_error PASSED [ 9%] tests/legacy_api/test_session.py::test_session_list_windows_raises_deprecated_error PASSED [ 9%] tests/legacy_api/test_session.py::test_session_children_raises_deprecated_error PASSED [ 9%] tests/legacy_api/test_session.py::test_session__windows_raises_deprecated_error PASSED [ 9%] tests/legacy_api/test_session.py::test_session__list_windows_raises_deprecated_error PASSED [ 9%] tests/legacy_api/test_tmuxobject.py::test_server_find_where_raises_deprecated_error PASSED [ 9%] tests/legacy_api/test_tmuxobject.py::test_session_find_where_raises_deprecated_error PASSED [ 9%] tests/legacy_api/test_tmuxobject.py::test_window_find_where_raises_deprecated_error PASSED [ 9%] tests/legacy_api/test_tmuxobject.py::test_server_where_raises_deprecated_error PASSED [ 10%] tests/legacy_api/test_tmuxobject.py::test_session_where_raises_deprecated_error PASSED [ 10%] tests/legacy_api/test_tmuxobject.py::test_window_where_raises_deprecated_error PASSED [ 10%] tests/legacy_api/test_tmuxobject.py::test_server_get_by_id_raises_deprecated_error PASSED [ 10%] tests/legacy_api/test_tmuxobject.py::test_session_get_by_id_raises_deprecated_error PASSED [ 10%] tests/legacy_api/test_tmuxobject.py::test_window_get_by_id_raises_deprecated_error PASSED [ 10%] tests/legacy_api/test_version.py::test_version[1] PASSED [ 10%] tests/legacy_api/test_version.py::test_version[1.0] PASSED [ 10%] tests/legacy_api/test_version.py::test_version[1.0.0] PASSED [ 10%] tests/legacy_api/test_version.py::test_version[1.0.0b] PASSED [ 11%] tests/legacy_api/test_version.py::test_version[1.0.0b1] PASSED [ 11%] tests/legacy_api/test_version.py::test_version[1.0.0b-openbsd] PASSED [ 11%] tests/legacy_api/test_version.py::test_version[1.0.0-next] PASSED [ 11%] tests/legacy_api/test_version.py::test_version[1.0.0-next.1] PASSED [ 11%] tests/legacy_api/test_version.py::test_version_compare[1-eq-1-False] PASSED [ 11%] tests/legacy_api/test_version.py::test_version_compare[1-eq-1.0-False] PASSED [ 11%] tests/legacy_api/test_version.py::test_version_compare[1-eq-1.0.0-False] PASSED [ 11%] tests/legacy_api/test_version.py::test_version_compare[1-gt-1.0.0a-False] PASSED [ 11%] tests/legacy_api/test_version.py::test_version_compare[1-gt-1.0.0b-False] PASSED [ 12%] tests/legacy_api/test_version.py::test_version_compare[1-lt-1.0.0p1-False] PASSED [ 12%] tests/legacy_api/test_version.py::test_version_compare[1-lt-1.0.0-openbsd-False] PASSED [ 12%] tests/legacy_api/test_version.py::test_version_compare[1-lt-1-AssertionError] PASSED [ 12%] tests/legacy_api/test_version.py::test_version_compare[1.0.0c-gt-1.0.0b-False] PASSED [ 12%] tests/legacy_api/test_window.py::test_split_window_raises_deprecated_error PASSED [ 12%] tests/legacy_api/test_window.py::test_attached_pane_raises_deprecated_error PASSED [ 12%] tests/legacy_api/test_window.py::test_select_window_raises_deprecated_error PASSED [ 12%] tests/legacy_api/test_window.py::test_kill_window_raises_deprecated_error PASSED [ 12%] tests/legacy_api/test_window.py::test_set_window_option_emits_deprecation_warning PASSED [ 13%] tests/legacy_api/test_window.py::test_show_window_options_emits_deprecation_warning PASSED [ 13%] tests/legacy_api/test_window.py::test_show_window_option_emits_deprecation_warning PASSED [ 13%] tests/legacy_api/test_window.py::test_window_get_raises_deprecated_error PASSED [ 13%] tests/legacy_api/test_window.py::test_window_getitem_raises_deprecated_error PASSED [ 13%] tests/legacy_api/test_window.py::test_window_get_by_id_raises_deprecated_error PASSED [ 13%] tests/legacy_api/test_window.py::test_window_where_raises_deprecated_error PASSED [ 13%] tests/legacy_api/test_window.py::test_window_find_where_raises_deprecated_error PASSED [ 13%] tests/legacy_api/test_window.py::test_window_list_panes_raises_deprecated_error PASSED [ 13%] tests/legacy_api/test_window.py::test_window_children_raises_deprecated_error PASSED [ 14%] tests/legacy_api/test_window.py::test_window__panes_raises_deprecated_error PASSED [ 14%] tests/legacy_api/test_window.py::test_window__list_panes_raises_deprecated_error PASSED [ 14%] tests/test/test_constants.py::test_test_session_prefix PASSED [ 14%] tests/test/test_constants.py::test_retry_timeout_seconds_default PASSED [ 14%] tests/test/test_constants.py::test_retry_timeout_seconds_env PASSED [ 14%] tests/test/test_constants.py::test_retry_interval_seconds_default PASSED [ 14%] tests/test/test_constants.py::test_retry_interval_seconds_env PASSED [ 14%] tests/test/test_environment.py::test_environment_var_guard_set PASSED [ 14%] tests/test/test_environment.py::test_environment_var_guard_unset PASSED [ 15%] tests/test/test_environment.py::test_environment_var_guard_context_manager PASSED [ 15%] tests/test/test_environment.py::test_environment_var_guard_cleanup_on_exception PASSED [ 15%] tests/test/test_environment.py::test_environment_var_guard_unset_and_reset PASSED [ 15%] tests/test/test_environment.py::test_environment_var_guard_exit_with_exception PASSED [ 15%] tests/test/test_environment.py::test_environment_var_guard_unset_previously_set PASSED [ 15%] tests/test/test_random.py::test_random_str_sequence_default PASSED [ 15%] tests/test/test_random.py::test_random_str_sequence_custom_chars PASSED [ 15%] tests/test/test_random.py::test_random_str_sequence_uniqueness PASSED [ 15%] tests/test/test_random.py::test_random_str_sequence_iterator PASSED [ 16%] tests/test/test_random.py::test_random_str_sequence_doctest_examples PASSED [ 16%] tests/test/test_random.py::test_namer_global_instance PASSED [ 16%] tests/test/test_random.py::test_get_test_session_name_doctest_examples PASSED [ 16%] tests/test/test_random.py::test_get_test_session_name_default_prefix PASSED [ 16%] tests/test/test_random.py::test_get_test_session_name_custom_prefix PASSED [ 16%] tests/test/test_random.py::test_get_test_session_name_loop_behavior PASSED [ 16%] tests/test/test_random.py::test_get_test_window_name_doctest_examples PASSED [ 16%] tests/test/test_random.py::test_get_test_window_name_default_prefix PASSED [ 16%] tests/test/test_random.py::test_get_test_window_name_custom_prefix PASSED [ 16%] tests/test/test_random.py::test_get_test_window_name_loop_behavior PASSED [ 17%] tests/test/test_random.py::test_get_test_window_name_requires_prefix PASSED [ 17%] tests/test/test_random.py::test_random_str_sequence_self_type PASSED [ 17%] tests/test/test_random.py::test_random_str_sequence_small_character_set PASSED [ 17%] tests/test/test_random.py::test_random_str_sequence_insufficient_characters PASSED [ 17%] tests/test/test_random.py::test_next_method_directly PASSED [ 17%] tests/test/test_random.py::test_namer_initialization PASSED [ 17%] tests/test/test_random.py::test_random_str_sequence_iter_next_methods PASSED [ 17%] tests/test/test_random.py::test_collisions_with_real_objects PASSED [ 17%] tests/test/test_random.py::test_imports_coverage PASSED [ 18%] tests/test/test_random.py::test_iterator_protocol PASSED [ 18%] tests/test/test_random.py::test_get_test_session_name_collision_handling PASSED [ 18%] tests/test/test_random.py::test_get_test_window_name_null_prefix PASSED [ 18%] tests/test/test_random.py::test_import_typing_coverage PASSED [ 18%] tests/test/test_random.py::test_random_str_sequence_direct_instantiation PASSED [ 18%] tests/test/test_random.py::test_get_test_window_name_collision_handling PASSED [ 18%] tests/test/test_random.py::test_random_str_sequence_return_statements PASSED [ 18%] tests/test/test_random.py::test_get_test_session_name_implementation_details PASSED [ 18%] tests/test/test_random.py::test_get_test_window_name_branch_coverage PASSED [ 19%] tests/test/test_retry.py::test_retry_three_times PASSED [ 19%] tests/test/test_retry.py::test_function_times_out FAILED [ 19%] tests/test/test_retry.py::test_function_times_out_no_raise FAILED [ 19%] tests/test/test_retry.py::test_function_times_out_no_raise_assert FAILED [ 19%] tests/test/test_retry.py::test_retry_three_times_no_raise_assert PASSED [ 19%] tests/test/test_sparse_array.py::test_is_sparse_array_list[empty_dict] PASSED [ 19%] tests/test/test_sparse_array.py::test_is_sparse_array_list[sparse_arrays_only] PASSED [ 19%] tests/test/test_sparse_array.py::test_is_sparse_array_list[mixed_values] PASSED [ 19%] tests/test/test_sparse_array.py::test_is_sparse_array_list[strings_only] PASSED [ 20%] tests/test/test_sparse_array.py::test_is_sparse_array_list[none_value] PASSED [ 20%] tests/test/test_sparse_array.py::test_sparse_array_append[append_to_empty] PASSED [ 20%] tests/test/test_sparse_array.py::test_sparse_array_append[append_after_add] PASSED [ 20%] tests/test/test_sparse_array.py::test_sparse_array_append[multiple_appends] PASSED [ 20%] tests/test/test_sparse_array.py::test_sparse_array_iter_values[sorted_order] PASSED [ 20%] tests/test/test_sparse_array.py::test_sparse_array_iter_values[empty] PASSED [ 20%] tests/test/test_sparse_array.py::test_sparse_array_iter_values[consecutive] PASSED [ 20%] tests/test/test_sparse_array.py::test_sparse_array_as_list[sorted_order] PASSED [ 20%] tests/test/test_sparse_array.py::test_sparse_array_as_list[empty] PASSED [ 21%] tests/test/test_sparse_array.py::test_sparse_array_as_list[consecutive] PASSED [ 21%] tests/test/test_temporary.py::test_temp_session_creates_and_destroys PASSED [ 21%] tests/test/test_temporary.py::test_temp_session_with_name PASSED [ 21%] tests/test/test_temporary.py::test_temp_session_cleanup_on_exception PASSED [ 21%] tests/test/test_temporary.py::test_temp_window_creates_and_destroys PASSED [ 21%] tests/test/test_temporary.py::test_temp_window_with_name PASSED [ 21%] tests/test/test_temporary.py::test_temp_window_cleanup_on_exception PASSED [ 21%] tests/test/test_temporary.py::test_temp_session_outside_context PASSED [ 21%] tests/test/test_temporary.py::test_temp_window_outside_context PASSED [ 22%] tests/test_client.py::test_server_clients_returns_querylist PASSED [ 22%] tests/test_client.py::test_client_session_reports_attached_session PASSED [ 22%] tests/test_client.py::test_client_readonly_default_zero PASSED [ 22%] tests/test_client.py::test_client_refresh_rehydrates_fields PASSED [ 22%] tests/test_client.py::test_clients_property_hydrates_cross_scope PASSED [ 22%] tests/test_client.py::test_client_attached_session_returns_typed_session PASSED [ 22%] tests/test_client.py::test_client_attached_window_tracks_active_window PASSED [ 22%] tests/test_client.py::test_client_attached_pane_tracks_active_pane PASSED [ 22%] tests/test_client.py::test_client_attached_properties_return_none_after_detach PASSED [ 23%] tests/test_client.py::test_client_refresh_raises_when_client_name_is_none PASSED [ 23%] tests/test_client.py::test_resolve_attached_returns_full_triple_for_live_client PASSED [ 23%] tests/test_client.py::test_resolve_attached_returns_none_triple_after_detach PASSED [ 23%] tests/test_client.py::test_resolve_attached_catches_no_active_window PASSED [ 23%] tests/test_common.py::test_has_version PASSED [ 23%] tests/test_common.py::test_get_version_is_memoized_for_same_tmux_bin PASSED [ 23%] tests/test_common.py::test_get_version_cache_keyed_by_tmux_bin PASSED [ 23%] tests/test_common.py::test_get_version_cache_clear_invalidates PASSED [ 23%] tests/test_common.py::test_get_version_binary_swap_requires_explicit_cache_clear PASSED [ 24%] tests/test_common.py::test_tmux_cmd_raises_on_not_found PASSED [ 24%] tests/test_common.py::test_tmux_cmd_unicode PASSED [ 24%] tests/test_common.py::test_session_check_name[empty_string] PASSED [ 24%] tests/test_common.py::test_session_check_name[none_value] PASSED [ 24%] tests/test_common.py::test_session_check_name[contains_period] PASSED [ 24%] tests/test_common.py::test_session_check_name[contains_colon] PASSED [ 24%] tests/test_common.py::test_session_check_name[valid_name] PASSED [ 24%] tests/test_common.py::test_session_check_name[valid_with_special_chars] PASSED [ 24%] tests/test_common.py::test_get_libtmux_version PASSED [ 25%] tests/test_common.py::test_version_comparison[gt_older_version] PASSED [ 25%] tests/test_common.py::test_version_comparison[gt_older_version_with_letter] PASSED [ 25%] tests/test_common.py::test_version_comparison[gt_newer_version] PASSED [ 25%] tests/test_common.py::test_version_comparison[gt_newer_version_with_letter] PASSED [ 25%] tests/test_common.py::test_version_comparison[gte_older_version] PASSED [ 25%] tests/test_common.py::test_version_comparison[gte_older_version_with_letter] PASSED [ 25%] tests/test_common.py::test_version_comparison[gte_current_version] PASSED [ 25%] tests/test_common.py::test_version_comparison[gte_newer_version] PASSED [ 25%] tests/test_common.py::test_version_comparison[gte_newer_version_with_letter] PASSED [ 25%] tests/test_common.py::test_version_comparison[lt_newer_version_with_letter] PASSED [ 26%] tests/test_common.py::test_version_comparison[lt_newer_version] PASSED [ 26%] tests/test_common.py::test_version_comparison[lt_older_version] PASSED [ 26%] tests/test_common.py::test_version_comparison[lt_current_version] PASSED [ 26%] tests/test_common.py::test_version_comparison[lte_newer_version_with_letter] PASSED [ 26%] tests/test_common.py::test_version_comparison[lte_newer_version] PASSED [ 26%] tests/test_common.py::test_version_comparison[lte_current_version] PASSED [ 26%] tests/test_common.py::test_version_comparison[lte_older_version] PASSED [ 26%] tests/test_common.py::test_version_comparison[lte_older_version_with_letter] PASSED [ 26%] tests/test_common.py::test_version_parsing[master_version] PASSED [ 27%] tests/test_common.py::test_version_parsing[next_version] PASSED [ 27%] tests/test_common.py::test_version_parsing[openbsd_version] PASSED [ 27%] tests/test_common.py::test_version_parsing[too_low_version] PASSED [ 27%] tests/test_common.py::test_version_validation[accepts_letter_in_min_version_1_9a] PASSED [ 27%] tests/test_common.py::test_version_validation[accepts_letter_in_min_version_1_8a] PASSED [ 27%] tests/test_common.py::test_version_validation[accepts_version_1_8] PASSED [ 27%] tests/test_common.py::test_version_validation[accepts_version_1_8a] PASSED [ 27%] tests/test_common.py::test_version_validation[accepts_version_1_9a] PASSED [ 27%] tests/test_common.py::test_version_validation[rejects_version_1_7] PASSED [ 28%] tests/test_common.py::test_version_validation[accepts_master_version] PASSED [ 28%] tests/test_common.py::test_version_validation[accepts_next_version] PASSED [ 28%] tests/test_common.py::test_version_validation[accepts_openbsd_version] PASSED [ 28%] tests/test_common.py::test_version_validation[accepts_dev_version] PASSED [ 28%] tests/test_common.py::test_version_validation[accepts_rc_version] PASSED [ 28%] tests/test_common.py::test_tmux_cmd_pre_execution_logging PASSED [ 28%] tests/test_common.py::test_libtmux_exception_subcommand_default_none PASSED [ 28%] tests/test_common.py::test_libtmux_exception_subcommand_tags_str PASSED [ 28%] tests/test_common.py::test_raise_if_stderr_no_stderr_is_noop PASSED [ 29%] tests/test_common.py::test_raise_if_stderr_raises_with_subcommand_tag PASSED [ 29%] tests/test_common.py::test_raise_if_stderr_str_shape_exact PASSED [ 29%] tests/test_common.py::test_tmux_cmd_format_separator_survives_non_utf8_locale PASSED [ 29%] tests/test_control_mode.py::test_control_mode_creates_client PASSED [ 29%] tests/test_control_mode.py::test_control_mode_cleanup PASSED [ 29%] tests/test_control_mode.py::test_control_mode_client_name PASSED [ 29%] tests/test_control_mode.py::test_control_mode_client_name_matches_spawned_client PASSED [ 29%] tests/test_control_mode.py::test_control_mode_stdout_preserves_non_ascii_output PASSED [ 29%] tests/test_dataclasses.py::test_pane PASSED [ 30%] tests/test_dataclasses.py::test_querylist PASSED [ 30%] tests/test_hooks.py::test_hooks_raw_cmd PASSED [ 30%] tests/test_hooks.py::test_hooks_dataclass PASSED [ 30%] tests/test_hooks.py::test_hooks_mixin PASSED [ 30%] tests/test_hooks.py::test_hook_set_show_unset_cycle[alert_activity] PASSED [ 30%] tests/test_hooks.py::test_hook_set_show_unset_cycle[alert_bell] PASSED [ 30%] tests/test_hooks.py::test_hook_set_show_unset_cycle[alert_silence] PASSED [ 30%] tests/test_hooks.py::test_hook_set_show_unset_cycle[client_active] PASSED [ 30%] tests/test_hooks.py::test_hook_set_show_unset_cycle[client_attached] PASSED [ 31%] tests/test_hooks.py::test_hook_set_show_unset_cycle[client_detached] PASSED [ 31%] tests/test_hooks.py::test_hook_set_show_unset_cycle[client_focus_in] PASSED [ 31%] tests/test_hooks.py::test_hook_set_show_unset_cycle[client_focus_out] PASSED [ 31%] tests/test_hooks.py::test_hook_set_show_unset_cycle[client_resized] PASSED [ 31%] tests/test_hooks.py::test_hook_set_show_unset_cycle[client_session_changed] PASSED [ 31%] tests/test_hooks.py::test_hook_set_show_unset_cycle[session_created] PASSED [ 31%] tests/test_hooks.py::test_hook_set_show_unset_cycle[session_closed] PASSED [ 31%] tests/test_hooks.py::test_hook_set_show_unset_cycle[session_renamed] PASSED [ 31%] tests/test_hooks.py::test_hook_set_show_unset_cycle[window_linked] PASSED [ 32%] tests/test_hooks.py::test_hook_set_show_unset_cycle[window_renamed] PASSED [ 32%] tests/test_hooks.py::test_hook_set_show_unset_cycle[window_resized] PASSED [ 32%] tests/test_hooks.py::test_hook_set_show_unset_cycle[window_unlinked] PASSED [ 32%] tests/test_hooks.py::test_hook_set_show_unset_cycle[session_window_changed] PASSED [ 32%] tests/test_hooks.py::test_hook_set_show_unset_cycle[pane_died] PASSED [ 32%] tests/test_hooks.py::test_hook_set_show_unset_cycle[pane_exited] PASSED [ 32%] tests/test_hooks.py::test_hook_set_show_unset_cycle[pane_focus_in] PASSED [ 32%] tests/test_hooks.py::test_hook_set_show_unset_cycle[pane_focus_out] PASSED [ 32%] tests/test_hooks.py::test_hook_set_show_unset_cycle[pane_mode_changed] PASSED [ 33%] tests/test_hooks.py::test_hook_set_show_unset_cycle[pane_set_clipboard] PASSED [ 33%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_bind_key] PASSED [ 33%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_capture_pane] PASSED [ 33%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_copy_mode] PASSED [ 33%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_display_message] PASSED [ 33%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_display_panes] PASSED [ 33%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_kill_pane] PASSED [ 33%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_list_buffers] PASSED [ 33%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_list_clients] PASSED [ 33%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_list_keys] PASSED [ 34%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_list_panes] PASSED [ 34%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_list_sessions] PASSED [ 34%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_list_windows] PASSED [ 34%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_load_buffer] PASSED [ 34%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_lock_server] PASSED [ 34%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_new_session] PASSED [ 34%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_new_window] PASSED [ 34%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_paste_buffer] PASSED [ 34%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_pipe_pane] PASSED [ 35%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_queue] PASSED [ 35%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_refresh_client] PASSED [ 35%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_rename_session] PASSED [ 35%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_rename_window] PASSED [ 35%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_resize_pane] PASSED [ 35%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_resize_window] PASSED [ 35%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_save_buffer] PASSED [ 35%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_select_layout] PASSED [ 35%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_select_pane] PASSED [ 36%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_select_window] PASSED [ 36%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_send_keys] PASSED [ 36%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_set_buffer] PASSED [ 36%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_set_environment] PASSED [ 36%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_set_hook] PASSED [ 36%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_set_option] PASSED [ 36%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_show_environment] PASSED [ 36%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_show_messages] PASSED [ 36%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_show_options] PASSED [ 37%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_split_window] PASSED [ 37%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_unbind_key] PASSED [ 37%] tests/test_hooks.py::test_new_hooks_version_gated[pane_title_changed] PASSED [ 37%] tests/test_hooks.py::test_set_hooks[set_hooks_with_dict] PASSED [ 37%] tests/test_hooks.py::test_set_hooks[set_hooks_with_list] PASSED [ 37%] tests/test_hooks.py::test_set_hooks[set_hooks_clear_existing] PASSED [ 37%] tests/test_hooks.py::test_show_hook_returns_sparse_array PASSED [ 37%] tests/test_hooks.py::test_show_hook_indexed_lookup[index_zero-session-renamed-0-display-message 'test zero'] PASSED [ 37%] tests/test_hooks.py::test_show_hook_indexed_lookup[index_five-session-renamed-5-display-message 'test five'] PASSED [ 38%] tests/test_hooks.py::test_show_hook_indexed_lookup[window_hook-window-renamed-0-display-message 'window test'] PASSED [ 38%] tests/test_hooks.py::test_set_hooks_with_sparse_array PASSED [ 38%] tests/test_hooks.py::test_set_hooks_method_chaining PASSED [ 38%] tests/test_hooks.py::test_unset_hook_clears_all_indices PASSED [ 38%] tests/test_hooks.py::test_set_hook_append_flag PASSED [ 38%] tests/test_hooks.py::test_show_hooks_stores_string_values[string_hook_value] PASSED [ 38%] tests/test_hooks.py::test_show_hooks_stores_string_values[multiple_hooks] PASSED [ 38%] tests/test_hooks.py::test_run_hook_basic PASSED [ 38%] tests/test_hooks.py::test_set_hook_flag_combinations[append_to_existing] PASSED [ 39%] tests/test_hooks.py::test_set_hook_flag_combinations[global_hook] PASSED [ 39%] tests/test_hooks.py::test_set_hook_flag_combinations[run_immediately] PASSED [ 39%] tests/test_hooks.py::test_set_hook_flag_combinations[append_and_global] PASSED [ 39%] tests/test_hooks.py::test_hook_scope_handling[session_scope] PASSED [ 39%] tests/test_hooks.py::test_hook_scope_handling[window_scope] PASSED [ 39%] tests/test_hooks.py::test_hook_scope_handling[pane_scope] PASSED [ 39%] tests/test_hooks.py::test_show_hooks_parsing_edge_cases[normal_hook_value] PASSED [ 39%] tests/test_hooks.py::test_show_hooks_parsing_edge_cases[multiple_indexed_hooks] PASSED [ 39%] tests/test_hooks.py::test_show_hooks_parsing_edge_cases[multiple_different_hooks] PASSED [ 40%] tests/test_hooks.py::test_show_hooks_empty_result PASSED [ 40%] tests/test_logging.py::test_tmux_cmd_debug_logging_schema PASSED [ 40%] tests/test_logging.py::test_lifecycle_info_logging_schema PASSED [ 40%] tests/test_logging.py::test_server_new_session_info_logging PASSED [ 40%] tests/test_logging.py::test_server_kill_info_logging PASSED [ 40%] tests/test_logging.py::test_window_rename_info_logging PASSED [ 40%] tests/test_logging.py::test_window_kill_all_except_logging PASSED [ 40%] tests/test_logging.py::test_pane_split_info_logging PASSED [ 40%] tests/test_logging.py::test_pane_kill_all_except_logging PASSED [ 41%] tests/test_logging.py::test_session_kill_all_except_logging PASSED [ 41%] tests/test_logging.py::test_server_new_session_surfaces_kill_session_stderr PASSED [ 41%] tests/test_logging.py::test_options_warning_logging_schema PASSED [ 41%] tests/test_neo.py::test_pane_dead_signal_gated_to_3_3 PASSED [ 41%] tests/test_neo.py::test_pane_dead_time_gated_to_3_3 PASSED [ 41%] tests/test_neo.py::test_field_version_keys_are_obj_fields PASSED [ 41%] tests/test_neo.py::test_scopes_by_list_cmd_downward_cascade PASSED [ 41%] tests/test_neo.py::test_context_only_token_scope[command_list_alias] PASSED [ 41%] tests/test_neo.py::test_context_only_token_scope[command_list_name] PASSED [ 41%] tests/test_neo.py::test_context_only_token_scope[command_list_usage] PASSED [ 42%] tests/test_neo.py::test_context_only_token_scope[current_file] PASSED [ 42%] tests/test_neo.py::test_context_only_token_scope[search_match] PASSED [ 42%] tests/test_neo.py::test_context_scope_excluded_from_every_list_cmd[list-clients] PASSED [ 42%] tests/test_neo.py::test_context_scope_excluded_from_every_list_cmd[list-panes] PASSED [ 42%] tests/test_neo.py::test_context_scope_excluded_from_every_list_cmd[list-sessions] PASSED [ 42%] tests/test_neo.py::test_context_scope_excluded_from_every_list_cmd[list-windows] PASSED [ 42%] tests/test_neo.py::test_context_tokens_absent_from_every_list_cmd_template[command_list_alias] PASSED [ 42%] tests/test_neo.py::test_context_tokens_absent_from_every_list_cmd_template[command_list_name] PASSED [ 42%] tests/test_neo.py::test_context_tokens_absent_from_every_list_cmd_template[command_list_usage] PASSED [ 43%] tests/test_neo.py::test_context_tokens_absent_from_every_list_cmd_template[current_file] PASSED [ 43%] tests/test_neo.py::test_context_tokens_absent_from_every_list_cmd_template[search_match] PASSED [ 43%] tests/test_neo.py::test_token_scope_unknown_for_unclassified_field PASSED [ 43%] tests/test_neo.py::test_every_obj_field_classifies_to_known_scope PASSED [ 43%] tests/test_options.py::test_options PASSED [ 43%] tests/test_options.py::test_options_server PASSED [ 43%] tests/test_options.py::test_options_session PASSED [ 43%] tests/test_options.py::test_options_window PASSED [ 43%] tests/test_options.py::test_options_pane PASSED [ 44%] tests/test_options.py::test_options_grid PASSED [ 44%] tests/test_options.py::test_custom_options PASSED [ 44%] tests/test_options.py::test_terminal_features PASSED [ 44%] tests/test_options.py::test_terminal_overrides PASSED [ 44%] tests/test_options.py::test_terminal_overrides_multi_feature[two_flags-xterm*:smcup@:rmcup@-xterm*-expected_features0] PASSED [ 44%] tests/test_options.py::test_terminal_overrides_multi_feature[flag_and_keyval-xterm*:XT:Ms=clipboard-xterm*-expected_features1] PASSED [ 44%] tests/test_options.py::test_terminal_overrides_multi_feature[multiple_keyvals-screen*:Tc:RGB:setab=test-screen*-expected_features2] PASSED [ 44%] tests/test_options.py::test_terminal_overrides_multi_feature[integer_value-tmux*:colors=256:Tc-tmux*-expected_features3] PASSED [ 44%] tests/test_options.py::test_command_alias PASSED [ 45%] tests/test_options.py::test_user_keys PASSED [ 45%] tests/test_options.py::test_mocked_cmd_stdoutclass_fixture[terminal-features] PASSED [ 45%] tests/test_options.py::test_mocked_cmd_stdoutclass_fixture[command-alias] PASSED [ 45%] tests/test_options.py::test_show_option_pane_fixture[terminal-features] PASSED [ 45%] tests/test_options.py::test_show_option_pane_fixture[command-alias] PASSED [ 45%] tests/test_options.py::test_stable_baseline_options_and_hooks PASSED [ 45%] tests/test_options.py::test_high_level_api_expectations PASSED [ 45%] tests/test_options.py::test_complex_option_values PASSED [ 45%] tests/test_options.py::test_style_option_validation PASSED [ 46%] tests/test_options.py::test_option_error_handling PASSED [ 46%] tests/test_options.py::test_terminal_features_edge_cases PASSED [ 46%] tests/test_options.py::test_option_set_show_cycle[server_buffer_limit] PASSED [ 46%] tests/test_options.py::test_option_set_show_cycle[server_escape_time] PASSED [ 46%] tests/test_options.py::test_option_set_show_cycle[server_message_limit] PASSED [ 46%] tests/test_options.py::test_option_set_show_cycle[server_prompt_history_limit] PASSED [ 46%] tests/test_options.py::test_option_set_show_cycle[server_exit_empty] PASSED [ 46%] tests/test_options.py::test_option_set_show_cycle[server_exit_unattached] PASSED [ 46%] tests/test_options.py::test_option_set_show_cycle[server_focus_events] PASSED [ 47%] tests/test_options.py::test_option_set_show_cycle[server_extended_keys] PASSED [ 47%] tests/test_options.py::test_option_set_show_cycle[server_set_clipboard] PASSED [ 47%] tests/test_options.py::test_option_set_show_cycle[server_default_terminal] PASSED [ 47%] tests/test_options.py::test_option_set_show_cycle[server_editor] PASSED [ 47%] tests/test_options.py::test_option_set_show_cycle[session_base_index] PASSED [ 47%] tests/test_options.py::test_option_set_show_cycle[session_display_panes_time] PASSED [ 47%] tests/test_options.py::test_option_set_show_cycle[session_display_time] PASSED [ 47%] tests/test_options.py::test_option_set_show_cycle[session_history_limit] PASSED [ 47%] tests/test_options.py::test_option_set_show_cycle[session_lock_after_time] PASSED [ 48%] tests/test_options.py::test_option_set_show_cycle[session_repeat_time] PASSED [ 48%] tests/test_options.py::test_option_set_show_cycle[session_status_interval] PASSED [ 48%] tests/test_options.py::test_option_set_show_cycle[session_status_left_length] PASSED [ 48%] tests/test_options.py::test_option_set_show_cycle[session_status_right_length] PASSED [ 48%] tests/test_options.py::test_option_set_show_cycle[session_destroy_unattached] PASSED [ 48%] tests/test_options.py::test_option_set_show_cycle[session_mouse] PASSED [ 48%] tests/test_options.py::test_option_set_show_cycle[session_renumber_windows] PASSED [ 48%] tests/test_options.py::test_option_set_show_cycle[session_set_titles] PASSED [ 48%] tests/test_options.py::test_option_set_show_cycle[session_activity_action] PASSED [ 49%] tests/test_options.py::test_option_set_show_cycle[session_bell_action] PASSED [ 49%] tests/test_options.py::test_option_set_show_cycle[session_detach_on_destroy] PASSED [ 49%] tests/test_options.py::test_option_set_show_cycle[session_silence_action] PASSED [ 49%] tests/test_options.py::test_option_set_show_cycle[session_status_keys] PASSED [ 49%] tests/test_options.py::test_option_set_show_cycle[session_status_justify] PASSED [ 49%] tests/test_options.py::test_option_set_show_cycle[session_status_position] PASSED [ 49%] tests/test_options.py::test_option_set_show_cycle[session_visual_activity] PASSED [ 49%] tests/test_options.py::test_option_set_show_cycle[session_visual_bell] PASSED [ 49%] tests/test_options.py::test_option_set_show_cycle[session_visual_silence] PASSED [ 50%] tests/test_options.py::test_option_set_show_cycle[session_default_command] PASSED [ 50%] tests/test_options.py::test_option_set_show_cycle[session_status_left] PASSED [ 50%] tests/test_options.py::test_option_set_show_cycle[session_status_right] PASSED [ 50%] tests/test_options.py::test_option_set_show_cycle[session_status_style] PASSED [ 50%] tests/test_options.py::test_option_set_show_cycle[session_status_left_style] PASSED [ 50%] tests/test_options.py::test_option_set_show_cycle[session_status_right_style] PASSED [ 50%] tests/test_options.py::test_option_set_show_cycle[session_message_style] PASSED [ 50%] tests/test_options.py::test_option_set_show_cycle[window_pane_base_index] PASSED [ 50%] tests/test_options.py::test_option_set_show_cycle[window_monitor_silence] PASSED [ 50%] tests/test_options.py::test_option_set_show_cycle[window_aggressive_resize] PASSED [ 51%] tests/test_options.py::test_option_set_show_cycle[window_automatic_rename] PASSED [ 51%] tests/test_options.py::test_option_set_show_cycle[window_monitor_activity] PASSED [ 51%] tests/test_options.py::test_option_set_show_cycle[window_monitor_bell] PASSED [ 51%] tests/test_options.py::test_option_set_show_cycle[window_wrap_search] PASSED [ 51%] tests/test_options.py::test_option_set_show_cycle[window_clock_mode_style] PASSED [ 51%] tests/test_options.py::test_option_set_show_cycle[window_mode_keys] PASSED [ 51%] tests/test_options.py::test_option_set_show_cycle[window_pane_border_status] PASSED [ 51%] tests/test_options.py::test_option_set_show_cycle[window_window_size] PASSED [ 51%] tests/test_options.py::test_option_set_show_cycle[window_pane_border_format] PASSED [ 52%] tests/test_options.py::test_option_set_show_cycle[window_mode_style] PASSED [ 52%] tests/test_options.py::test_option_set_show_cycle[window_pane_border_style] PASSED [ 52%] tests/test_options.py::test_option_set_show_cycle[window_pane_active_border_style] PASSED [ 52%] tests/test_options.py::test_option_set_show_cycle[window_window_status_style] PASSED [ 52%] tests/test_options.py::test_option_set_show_cycle[window_window_status_current_style] PASSED [ 52%] tests/test_options.py::test_option_set_show_cycle[pane_allow_rename] PASSED [ 52%] tests/test_options.py::test_option_set_show_cycle[pane_alternate_screen] PASSED [ 52%] tests/test_options.py::test_option_set_show_cycle[pane_scroll_on_clear] PASSED [ 52%] tests/test_options.py::test_option_set_show_cycle[pane_synchronize_panes] PASSED [ 53%] tests/test_options.py::test_option_set_show_cycle[pane_allow_passthrough] PASSED [ 53%] tests/test_options.py::test_option_set_show_cycle[pane_remain_on_exit] PASSED [ 53%] tests/test_options.py::test_option_set_show_cycle[pane_window_style] PASSED [ 53%] tests/test_options.py::test_option_set_show_cycle[pane_window_active_style] PASSED [ 53%] tests/test_options.py::test_show_options_returns_expected_keys[server_global] PASSED [ 53%] tests/test_options.py::test_show_options_returns_expected_keys[server_global_inherited] PASSED [ 53%] tests/test_options.py::test_show_options_returns_expected_keys[session_global] PASSED [ 53%] tests/test_options.py::test_show_options_returns_expected_keys[session_global_inherited] PASSED [ 53%] tests/test_options.py::test_show_options_returns_expected_keys[window_global] PASSED [ 54%] tests/test_options.py::test_show_options_returns_expected_keys[window_global_inherited] PASSED [ 54%] tests/test_options.py::test_convert_values_sparse_array[boolean_on_off] PASSED [ 54%] tests/test_options.py::test_convert_values_sparse_array[numeric_conversion] PASSED [ 54%] tests/test_options.py::test_convert_values_sparse_array[mixed_values] PASSED [ 54%] tests/test_options.py::test_convert_values_sparse_array[sparse_indices] PASSED [ 54%] tests/test_options.py::test_convert_values_preserves_sparse_keys PASSED [ 54%] tests/test_options.py::test_show_option_g_parameter_emits_deprecation_warning PASSED [ 54%] tests/test_options.py::test_show_option_indexed_array[indexed_returns_value] PASSED [ 54%] tests/test_options.py::test_show_option_indexed_array[base_name_returns_sparse_array] PASSED [ 55%] tests/test_options.py::test_explode_arrays_preserves_inherited_marker[inherited_array_marker_preserved] PASSED [ 55%] tests/test_options.py::test_explode_arrays_preserves_inherited_marker[non_inherited_array_no_marker] PASSED [ 55%] tests/test_options.py::test_explode_arrays_preserves_inherited_marker[mixed_inherited_indices] PASSED [ 55%] tests/test_options.py::test_show_options_quiet PASSED [ 55%] tests/test_options.py::test_show_options_quiet_public PASSED [ 55%] tests/test_options.py::test_set_environment_hidden PASSED [ 55%] tests/test_options.py::test_set_environment_expand_format PASSED [ 55%] tests/test_pane.py::test_send_keys PASSED [ 55%] tests/test_pane.py::test_set_height PASSED [ 56%] tests/test_pane.py::test_set_width PASSED [ 56%] tests/test_pane.py::test_pane_split_window_zoom PASSED [ 56%] tests/test_pane.py::test_resize PASSED [ 56%] tests/test_pane.py::test_split_pane_size PASSED [ 56%] tests/test_pane.py::test_pane_context_manager PASSED [ 56%] tests/test_pane.py::test_split_start_directory[none_value] PASSED [ 56%] tests/test_pane.py::test_split_start_directory[empty_string] PASSED [ 56%] tests/test_pane.py::test_split_start_directory[user_path] PASSED [ 56%] tests/test_pane.py::test_split_start_directory[relative_path] PASSED [ 57%] tests/test_pane.py::test_split_start_directory_pathlib PASSED [ 57%] tests/test_pane.py::test_send_keys_flags[reset_terminal] PASSED [ 57%] tests/test_pane.py::test_send_keys_flags[repeat_count] PASSED [ 57%] tests/test_pane.py::test_send_keys_flags[hex_key_A] PASSED [ 57%] tests/test_pane.py::test_send_keys_flags[expand_formats] PASSED [ 57%] tests/test_pane.py::test_send_keys_flags[key_name_flag] PASSED [ 57%] tests/test_pane.py::test_send_keys_flag_only_reset_emits_clean_argv PASSED [ 57%] tests/test_pane.py::test_send_keys_flag_only_repeat_emits_dash_N PASSED [ 57%] tests/test_pane.py::test_send_keys_flag_only_requires_a_flag PASSED [ 58%] tests/test_pane.py::test_pane_format_field_declared_and_hydrated[pane_dead] PASSED [ 58%] tests/test_pane.py::test_pane_format_field_declared_and_hydrated[pane_format] PASSED [ 58%] tests/test_pane.py::test_pane_format_field_declared_and_hydrated[pane_in_mode] PASSED [ 58%] tests/test_pane.py::test_pane_format_field_declared_and_hydrated[pane_input_off] PASSED [ 58%] tests/test_pane.py::test_pane_format_field_declared_and_hydrated[pane_last] PASSED [ 58%] tests/test_pane.py::test_pane_format_field_declared_and_hydrated[pane_marked] PASSED [ 58%] tests/test_pane.py::test_pane_format_field_declared_and_hydrated[pane_marked_set] PASSED [ 58%] tests/test_pane.py::test_pane_format_field_declared_and_hydrated[pane_mode] PASSED [ 58%] tests/test_pane.py::test_pane_format_field_declared_and_hydrated[pane_path] PASSED [ 58%] tests/test_pane.py::test_pane_format_field_declared_and_hydrated[pane_pipe] PASSED [ 59%] tests/test_pane.py::test_pane_format_field_declared_and_hydrated[pane_synchronized] PASSED [ 59%] tests/test_pane.py::test_pane_synchronized_reflects_window_state PASSED [ 59%] tests/test_pane.py::test_pane_scope_override_field_hydrates[cursor_x] PASSED [ 59%] tests/test_pane.py::test_pane_scope_override_field_hydrates[cursor_y] PASSED [ 59%] tests/test_pane.py::test_pane_scope_override_field_hydrates[cursor_flag] PASSED [ 59%] tests/test_pane.py::test_pane_scope_override_field_hydrates[mouse_all_flag] PASSED [ 59%] tests/test_pane.py::test_pane_scope_override_field_hydrates[mouse_any_flag] PASSED [ 59%] tests/test_pane.py::test_pane_scope_override_field_hydrates[mouse_button_flag] PASSED [ 59%] tests/test_pane.py::test_pane_scope_override_field_hydrates[mouse_sgr_flag] PASSED [ 60%] tests/test_pane.py::test_pane_scope_override_field_hydrates[mouse_standard_flag] PASSED [ 60%] tests/test_pane.py::test_pane_scope_override_field_hydrates[scroll_region_lower] PASSED [ 60%] tests/test_pane.py::test_pane_scope_override_field_hydrates[scroll_region_upper] PASSED [ 60%] tests/test_pane.py::test_pane_scope_override_field_hydrates[alternate_saved_x] PASSED [ 60%] tests/test_pane.py::test_pane_scope_override_field_hydrates[alternate_saved_y] PASSED [ 60%] tests/test_pane.py::test_pane_scope_override_field_hydrates[history_bytes] PASSED [ 60%] tests/test_pane.py::test_pane_scope_override_field_hydrates[history_limit] PASSED [ 60%] tests/test_pane.py::test_pane_scope_override_field_hydrates[history_size] PASSED [ 60%] tests/test_pane.py::test_pane_scope_override_field_hydrates[insert_flag] PASSED [ 61%] tests/test_pane.py::test_pane_scope_override_field_hydrates[keypad_cursor_flag] PASSED [ 61%] tests/test_pane.py::test_pane_scope_override_field_hydrates[keypad_flag] PASSED [ 61%] tests/test_pane.py::test_pane_scope_override_field_hydrates[origin_flag] PASSED [ 61%] tests/test_pane.py::test_pane_scope_override_field_hydrates[wrap_flag] PASSED [ 61%] tests/test_pane.py::test_select_pane_direction PASSED [ 61%] tests/test_pane.py::test_select_pane_last PASSED [ 61%] tests/test_pane.py::test_select_pane_mark PASSED [ 61%] tests/test_pane.py::test_select_pane_disable_enable_input PASSED [ 61%] tests/test_pane.py::test_display_message_flags[format_string] PASSED [ 62%] tests/test_pane.py::test_display_message_flags[all_formats] PASSED [ 62%] tests/test_pane.py::test_display_message_flags[verbose] PASSED [ 62%] tests/test_pane.py::test_display_message_flags[no_expand] PASSED [ 62%] tests/test_pane.py::test_display_message_warns_on_tmux_error PASSED [ 62%] tests/test_pane.py::test_split_percentage PASSED [ 62%] tests/test_pane.py::test_split_percentage_size_mutual_exclusion PASSED [ 62%] tests/test_pane.py::test_send_prefix PASSED [ 62%] tests/test_pane.py::test_copy_mode PASSED [ 62%] tests/test_pane.py::test_copy_mode_source_pane PASSED [ 63%] tests/test_pane.py::test_copy_mode_page_down PASSED [ 63%] tests/test_pane.py::test_clock_mode PASSED [ 63%] tests/test_pane.py::test_chooser_smoke[choose_buffer] PASSED [ 63%] tests/test_pane.py::test_chooser_smoke[choose_client] PASSED [ 63%] tests/test_pane.py::test_chooser_smoke[choose_tree] PASSED [ 63%] tests/test_pane.py::test_chooser_smoke[customize_mode] PASSED [ 63%] tests/test_pane.py::test_choose_tree_with_flags PASSED [ 63%] tests/test_pane.py::test_find_window PASSED [ 63%] tests/test_pane.py::test_display_panes PASSED [ 64%] tests/test_pane.py::test_display_popup_flags[basic] PASSED [ 64%] tests/test_pane.py::test_display_popup_flags[dimensions] PASSED [ 64%] tests/test_pane.py::test_display_popup_flags[position] PASSED [ 64%] tests/test_pane.py::test_display_popup_flags[start_directory] PASSED [ 64%] tests/test_pane.py::test_display_popup_flags[title_v33] PASSED [ 64%] tests/test_pane.py::test_display_popup_flags[border_lines_v33] PASSED [ 64%] tests/test_pane.py::test_display_popup_flags[style_v33] PASSED [ 64%] tests/test_pane.py::test_display_popup_flags[border_style_v33] PASSED [ 64%] tests/test_pane.py::test_display_popup_flags[environment_v33] PASSED [ 65%] tests/test_pane.py::test_display_popup_flags[no_border_v33] PASSED [ 65%] tests/test_pane.py::test_display_popup_flags[close_on_any_key_v36] PASSED [ 65%] tests/test_pane.py::test_display_popup_flags[no_keys_v36] PASSED [ 65%] tests/test_pane.py::test_display_popup_close_on_success PASSED [ 65%] tests/test_pane.py::test_display_popup_mutual_exclusion PASSED [ 65%] tests/test_pane.py::test_display_popup_close_existing PASSED [ 65%] tests/test_pane.py::test_display_popup_target_client PASSED [ 65%] tests/test_pane.py::test_paste_buffer PASSED [ 65%] tests/test_pane.py::test_pipe_pane PASSED [ 66%] tests/test_pane.py::test_respawn_pane_kill PASSED [ 66%] tests/test_pane.py::test_move_pane PASSED [ 66%] tests/test_pane.py::test_join_pane PASSED [ 66%] tests/test_pane.py::test_join_pane_horizontal PASSED [ 66%] tests/test_pane.py::test_break_pane_basic PASSED [ 66%] tests/test_pane.py::test_break_pane_with_name PASSED [ 66%] tests/test_pane.py::test_swap_pane PASSED [ 66%] tests/test_pane.py::test_swap_pane_move_up_down PASSED [ 66%] tests/test_pane.py::test_swap_pane_invalid_args[kwargs0-target or move_up] PASSED [ 66%] tests/test_pane.py::test_swap_pane_invalid_args[kwargs1-mutually exclusive] PASSED [ 67%] tests/test_pane.py::test_swap_pane_invalid_args[kwargs2-mutually exclusive] PASSED [ 67%] tests/test_pane.py::test_clear_history PASSED [ 67%] tests/test_pane.py::test_pane_reset_clears_history_and_sends_reset PASSED [ 67%] tests/test_pane.py::test_pane_reset_targets_non_active_pane PASSED [ 67%] tests/test_pane.py::test_pane_refresh_raises_when_pane_id_is_none PASSED [ 67%] tests/test_pane_capture_pane.py::test_capture_pane_flags[basic_capture] PASSED [ 67%] tests/test_pane_capture_pane.py::test_capture_pane_flags[basic_multiline] PASSED [ 67%] tests/test_pane_capture_pane.py::test_capture_pane_flags[escape_sequences_red] PASSED [ 67%] tests/test_pane_capture_pane.py::test_capture_pane_flags[escape_sequences_green] PASSED [ 68%] tests/test_pane_capture_pane.py::test_capture_pane_flags[escape_sequences_bold] PASSED [ 68%] tests/test_pane_capture_pane.py::test_capture_pane_flags[no_escape_sequences] PASSED [ 68%] tests/test_pane_capture_pane.py::test_capture_pane_flags[escape_non_printable_basic] PASSED [ 68%] tests/test_pane_capture_pane.py::test_capture_pane_flags[escape_non_printable_tab] PASSED [ 68%] tests/test_pane_capture_pane.py::test_capture_pane_flags[join_wrapped_long_line] PASSED [ 68%] tests/test_pane_capture_pane.py::test_capture_pane_flags[preserve_trailing_spaces] PASSED [ 68%] tests/test_pane_capture_pane.py::test_capture_pane_flags[no_preserve_trailing] PASSED [ 68%] tests/test_pane_capture_pane.py::test_capture_pane_flags[trim_trailing_basic] PASSED [ 68%] tests/test_pane_capture_pane.py::test_capture_pane_flags[escape_sequences_with_join] PASSED [ 69%] tests/test_pane_capture_pane.py::test_capture_pane_flags[join_with_preserve_trailing] PASSED [ 69%] tests/test_pane_capture_pane.py::test_capture_pane_flags[all_flags_except_trim] PASSED [ 69%] tests/test_pane_capture_pane.py::test_capture_pane_backward_compatible PASSED [ 69%] tests/test_pane_capture_pane.py::test_capture_pane_start_end_with_flags PASSED [ 69%] tests/test_pane_capture_pane.py::test_capture_pane_trim_trailing_warning PASSED [ 69%] tests/test_pane_capture_pane.py::test_capture_pane_flag_smoke[quiet] PASSED [ 69%] tests/test_pane_capture_pane.py::test_capture_pane_flag_smoke[alternate_screen] PASSED [ 69%] tests/test_pane_capture_pane.py::test_capture_pane_flag_smoke[mode_screen_v36] PASSED [ 69%] tests/test_pane_capture_pane.py::test_capture_pane_to_buffer PASSED [ 70%] tests/test_pane_capture_pane.py::test_capture_pane_pending_emits_dash_P PASSED [ 70%] tests/test_pane_capture_pane.py::test_capture_pane_pending_returns_list PASSED [ 70%] tests/test_pytest_plugin.py::test_plugin PASSED [ 70%] tests/test_pytest_plugin.py::test_test_server PASSED [ 70%] tests/test_pytest_plugin.py::test_test_server_with_config PASSED [ 70%] tests/test_pytest_plugin.py::test_test_server_cleanup PASSED [ 70%] tests/test_pytest_plugin.py::test_test_server_multiple PASSED [ 70%] tests/test_pytest_plugin.py::test_reap_test_server_unlinks_socket_file PASSED [ 70%] tests/test_pytest_plugin.py::test_reap_test_server_is_noop_when_socket_missing PASSED [ 71%] tests/test_pytest_plugin.py::test_reap_test_server_tolerates_none PASSED [ 71%] tests/test_server.py::test_has_session PASSED [ 71%] tests/test_server.py::test_socket_name PASSED [ 71%] tests/test_server.py::test_socket_path PASSED [ 71%] tests/test_server.py::test_config PASSED [ 71%] tests/test_server.py::test_256_colors PASSED [ 71%] tests/test_server.py::test_88_colors PASSED [ 71%] tests/test_server.py::test_show_environment PASSED [ 71%] tests/test_server.py::test_getenv PASSED [ 72%] tests/test_server.py::test_show_environment_not_set PASSED [ 72%] tests/test_server.py::test_new_session PASSED [ 72%] tests/test_server.py::test_new_session_returns_populated_session PASSED [ 72%] tests/test_server.py::test_sessions_property_hydrates_cross_scope PASSED [ 72%] tests/test_server.py::test_windows_property_hydrates_active_pane PASSED [ 72%] tests/test_server.py::test_new_session_no_name PASSED [ 72%] tests/test_server.py::test_new_session_shell PASSED [ 72%] tests/test_server.py::test_new_session_shell_env PASSED [ 72%] tests/test_server.py::test_new_session_width_height SKIPPED (tmux 3.2 returns wrong width - test needs rework) [ 73%] tests/test_server.py::test_new_session_environmental_variables PASSED [ 73%] tests/test_server.py::test_no_server_sessions PASSED [ 73%] tests/test_server.py::test_no_server_attached_sessions PASSED [ 73%] tests/test_server.py::test_no_server_is_alive PASSED [ 73%] tests/test_server.py::test_with_server_is_alive PASSED [ 73%] tests/test_server.py::test_raise_if_dead_no_server_raises PASSED [ 73%] tests/test_server.py::test_raise_if_dead_does_not_raise_if_alive PASSED [ 73%] tests/test_server.py::test_on_init PASSED [ 73%] tests/test_server.py::test_socket_name_factory PASSED [ 74%] tests/test_server.py::test_socket_name_precedence PASSED [ 74%] tests/test_server.py::test_server_context_manager PASSED [ 74%] tests/test_server.py::test_new_session_start_directory[none_value] PASSED [ 74%] tests/test_server.py::test_new_session_start_directory[empty_string] PASSED [ 74%] tests/test_server.py::test_new_session_start_directory[user_path] PASSED [ 74%] tests/test_server.py::test_new_session_start_directory[relative_path] PASSED [ 74%] tests/test_server.py::test_new_session_start_directory_pathlib PASSED [ 74%] tests/test_server.py::test_tmux_bin_default PASSED [ 74%] tests/test_server.py::test_tmux_bin_custom_path PASSED [ 75%] tests/test_server.py::test_tmux_bin_invalid_path PASSED [ 75%] tests/test_server.py::test_tmux_bin_invalid_path_raise_if_dead PASSED [ 75%] tests/test_server.py::test_confirm_before[confirm_y] PASSED [ 75%] tests/test_server.py::test_confirm_before[default_yes_enter] PASSED [ 75%] tests/test_server.py::test_command_prompt[type_and_submit] PASSED [ 75%] tests/test_server.py::test_command_prompt[prefill_and_submit] PASSED [ 75%] tests/test_server.py::test_command_prompt_extra_flags[expand_format_v33] PASSED [ 75%] tests/test_server.py::test_command_prompt_extra_flags[literal_v36] PASSED [ 75%] tests/test_server.py::test_command_prompt_extra_flags[bspace_exit] SKIPPED [ 75%] tests/test_server.py::test_display_menu_flags[basic] PASSED [ 76%] tests/test_server.py::test_display_menu_flags[with_title] PASSED [ 76%] tests/test_server.py::test_display_menu_flags[with_position] PASSED [ 76%] tests/test_server.py::test_display_menu_flags[with_starting_choice_v34] PASSED [ 76%] tests/test_server.py::test_display_menu_flags[with_border_lines_v34] PASSED [ 76%] tests/test_server.py::test_display_menu_flags[with_style_v34] PASSED [ 76%] tests/test_server.py::test_display_menu_flags[with_border_style_v34] PASSED [ 76%] tests/test_server.py::test_display_menu_flags[with_stay_open] PASSED [ 76%] tests/test_server.py::test_display_menu_flags[with_selected_style_v34] PASSED [ 76%] tests/test_server.py::test_display_menu_flags[with_mouse_v35] PASSED [ 77%] tests/test_server.py::test_lock_server PASSED [ 77%] tests/test_server.py::test_lock_client PASSED [ 77%] tests/test_server.py::test_refresh_client PASSED [ 77%] tests/test_server.py::test_suspend_client PASSED [ 77%] tests/test_server.py::test_server_access_list PASSED [ 77%] tests/test_server.py::test_server_access_read_only_write_mutex PASSED [ 77%] tests/test_server.py::test_server_access_argv PASSED [ 77%] tests/test_server.py::test_start_server PASSED [ 77%] tests/test_server.py::test_bind_unbind_key PASSED [ 78%] tests/test_server.py::test_list_keys PASSED [ 78%] tests/test_server.py::test_list_commands PASSED [ 78%] tests/test_server.py::test_show_messages PASSED [ 78%] tests/test_server.py::test_show_messages_terminals_jobs PASSED [ 78%] tests/test_server.py::test_show_prompt_history PASSED [ 78%] tests/test_server.py::test_clear_prompt_history PASSED [ 78%] tests/test_server.py::test_wait_for_set_flag PASSED [ 78%] tests/test_server.py::test_run_shell_basic PASSED [ 78%] tests/test_server.py::test_run_shell_background PASSED [ 79%] tests/test_server.py::test_run_shell_cwd PASSED [ 79%] tests/test_server.py::test_run_shell_show_stderr PASSED [ 79%] tests/test_server.py::test_run_shell_cwd_warns_on_old_tmux PASSED [ 79%] tests/test_server.py::test_run_shell_show_stderr_warns_on_old_tmux PASSED [ 79%] tests/test_server.py::test_buffer_set_show[set_show_default] PASSED [ 79%] tests/test_server.py::test_buffer_set_show[set_show_named] PASSED [ 79%] tests/test_server.py::test_buffer_set_show[set_show_append] PASSED [ 79%] tests/test_server.py::test_buffer_delete PASSED [ 79%] tests/test_server.py::test_buffer_save_load PASSED [ 80%] tests/test_server.py::test_buffer_save_append PASSED [ 80%] tests/test_server.py::test_list_buffers PASSED [ 80%] tests/test_server.py::test_list_buffers_format_returns_raw_names PASSED [ 80%] tests/test_server.py::test_list_buffers_filter_pushes_predicate_into_tmux PASSED [ 80%] tests/test_server.py::test_server_search_sessions_filter PASSED [ 80%] tests/test_server.py::test_server_search_windows_filter PASSED [ 80%] tests/test_server.py::test_server_search_panes_filter_by_id PASSED [ 80%] tests/test_server.py::test_server_clients_returns_empty_on_tmux_error PASSED [ 80%] tests/test_server.py::test_server_search_sessions_propagates_errors PASSED [ 81%] tests/test_server.py::test_server_sessions_returns_empty_on_tmux_error PASSED [ 81%] tests/test_server.py::test_server_sessions_missing_socket_returns_empty PASSED [ 81%] tests/test_server.py::test_server_sessions_permission_error_returns_empty PASSED [ 81%] tests/test_server.py::test_if_shell_true PASSED [ 81%] tests/test_server.py::test_if_shell_false_with_else PASSED [ 81%] tests/test_server.py::test_source_file PASSED [ 81%] tests/test_server.py::test_source_file_quiet PASSED [ 81%] tests/test_server.py::test_list_clients PASSED [ 81%] tests/test_server.py::test_detach_client_target_client_spans_sessions PASSED [ 82%] tests/test_server.py::test_detach_client_no_target_uses_active PASSED [ 82%] tests/test_server.py::test_detach_all_clients_keep_client_spans_sessions PASSED [ 82%] tests/test_server.py::test_detach_all_clients_no_keep_preserves_one PASSED [ 82%] tests/test_server.py::test_new_session_client_flags PASSED [ 82%] tests/test_server.py::test_server_display_message_flags[version] PASSED [ 82%] tests/test_server.py::test_server_display_message_flags[socket_path_format_string] PASSED [ 82%] tests/test_server.py::test_server_display_message_flags[all_formats] PASSED [ 82%] tests/test_server.py::test_server_display_message_flags[no_expand_literal] PASSED [ 82%] tests/test_server.py::test_server_display_message_no_text_returns_none PASSED [ 83%] tests/test_server.py::test_server_display_message_target_client PASSED [ 83%] tests/test_server.py::test_server_display_message_warns_on_tmux_error PASSED [ 83%] tests/test_session.py::test_has_session PASSED [ 83%] tests/test_session.py::test_select_window PASSED [ 83%] tests/test_session.py::test_select_window_returns_Window PASSED [ 83%] tests/test_session.py::test_active_window PASSED [ 83%] tests/test_session.py::test_active_pane PASSED [ 83%] tests/test_session.py::test_session_rename PASSED [ 83%] tests/test_session.py::test_new_session PASSED [ 83%] tests/test_session.py::test_show_options PASSED [ 84%] tests/test_session.py::test_set_show_options_single PASSED [ 84%] tests/test_session.py::test_set_show_option PASSED [ 84%] tests/test_session.py::test_empty_session_option_returns_None PASSED [ 84%] tests/test_session.py::test_show_option_unknown PASSED [ 84%] tests/test_session.py::test_show_option_ambiguous PASSED [ 84%] tests/test_session.py::test_set_option_ambiguous PASSED [ 84%] tests/test_session.py::test_set_option_invalid PASSED [ 84%] tests/test_session.py::test_show_environment PASSED [ 84%] tests/test_session.py::test_set_show_environment_single PASSED [ 85%] tests/test_session.py::test_show_environment_not_set PASSED [ 85%] tests/test_session.py::test_remove_environment PASSED [ 85%] tests/test_session.py::test_unset_environment PASSED [ 85%] tests/test_session.py::test_periods_raise_bad_session_name[period_in_name] PASSED [ 85%] tests/test_session.py::test_periods_raise_bad_session_name[colon_in_name] PASSED [ 85%] tests/test_session.py::test_periods_raise_bad_session_name[valid_name] PASSED [ 85%] tests/test_session.py::test_cmd_inserts_session_id PASSED [ 85%] tests/test_session.py::test_new_window_with_environment[single_env_var] PASSED [ 85%] tests/test_session.py::test_new_window_with_environment[multiple_env_vars] PASSED [ 86%] tests/test_session.py::test_session_new_window_with_direction PASSED [ 86%] tests/test_session.py::test_session_context_manager PASSED [ 86%] tests/test_session.py::test_new_window_start_directory[none_value] PASSED [ 86%] tests/test_session.py::test_new_window_start_directory[empty_string] PASSED [ 86%] tests/test_session.py::test_new_window_start_directory[user_path] PASSED [ 86%] tests/test_session.py::test_new_window_start_directory[relative_path] PASSED [ 86%] tests/test_session.py::test_new_window_start_directory_pathlib PASSED [ 86%] tests/test_session.py::test_session_attach_does_not_fail_if_session_killed_during_attach[session_killed_during_attach_should_not_raise] PASSED [ 86%] tests/test_session.py::test_lock_session PASSED [ 87%] tests/test_session.py::test_detach_client_no_target_detaches_all_session_clients PASSED [ 87%] tests/test_session.py::test_last_window PASSED [ 87%] tests/test_session.py::test_next_window PASSED [ 87%] tests/test_session.py::test_previous_window PASSED [ 87%] tests/test_session.py::test_new_window_kill_existing PASSED [ 87%] tests/test_session.py::test_new_window_select_existing PASSED [ 87%] tests/test_session.py::test_session_last_window_exception_tags_subcommand PASSED [ 87%] tests/test_session.py::test_session_search_windows_filter PASSED [ 87%] tests/test_session.py::test_session_search_panes_filter_by_id PASSED [ 88%] tests/test_session.py::test_session_format_field_declared_and_hydrated[session_format] PASSED [ 88%] tests/test_session.py::test_session_format_field_declared_and_hydrated[session_group_attached_list] PASSED [ 88%] tests/test_session.py::test_session_format_field_declared_and_hydrated[session_group_many_attached] PASSED [ 88%] tests/test_session.py::test_session_format_field_declared_and_hydrated[session_grouped] PASSED [ 88%] tests/test_session.py::test_session_format_field_declared_and_hydrated[session_many_attached] PASSED [ 88%] tests/test_session.py::test_session_format_field_declared_and_hydrated[session_marked] PASSED [ 88%] tests/test_session.py::test_session_scope_override_field_hydrates[active_window_index] PASSED [ 88%] tests/test_session.py::test_session_scope_override_field_hydrates[last_window_index] PASSED [ 88%] tests/test_session.py::test_session_refresh_raises_when_session_id_is_none PASSED [ 89%] tests/test_tmuxobject.py::test_find_where PASSED [ 89%] tests/test_tmuxobject.py::test_find_where_None PASSED [ 89%] tests/test_tmuxobject.py::test_find_where_multiple_infos PASSED [ 89%] tests/test_tmuxobject.py::test_where PASSED [ 89%] tests/test_tmuxobject.py::test_filter PASSED [ 89%] tests/test_version.py::test_version[simple_version] PASSED [ 89%] tests/test_version.py::test_version[minor_version] PASSED [ 89%] tests/test_version.py::test_version[patch_version] PASSED [ 89%] tests/test_version.py::test_version[beta_version] PASSED [ 90%] tests/test_version.py::test_version[beta_with_number] PASSED [ 90%] tests/test_version.py::test_version[beta_with_os] PASSED [ 90%] tests/test_version.py::test_version[next_version] PASSED [ 90%] tests/test_version.py::test_version[next_with_number] PASSED [ 90%] tests/test_version.py::test_version_compare[equal_simple] PASSED [ 90%] tests/test_version.py::test_version_compare[equal_with_minor] PASSED [ 90%] tests/test_version.py::test_version_compare[equal_with_patch] PASSED [ 90%] tests/test_version.py::test_version_compare[greater_than_alpha] PASSED [ 90%] tests/test_version.py::test_version_compare[greater_than_beta] PASSED [ 91%] tests/test_version.py::test_version_compare[less_than_patch] PASSED [ 91%] tests/test_version.py::test_version_compare[less_than_openbsd] PASSED [ 91%] tests/test_version.py::test_version_compare[less_than_equal_raises] PASSED [ 91%] tests/test_version.py::test_version_compare[beta_to_rc_compare] PASSED [ 91%] tests/test_window.py::test_select_window PASSED [ 91%] tests/test_window.py::test_fresh_window_data PASSED [ 91%] tests/test_window.py::test_newest_pane_data PASSED [ 91%] tests/test_window.py::test_active_pane PASSED [ 91%] tests/test_window.py::test_split PASSED [ 91%] tests/test_window.py::test_split_shell PASSED [ 92%] tests/test_window.py::test_split_horizontal PASSED [ 92%] tests/test_window.py::test_split_size PASSED [ 92%] tests/test_window.py::test_window_rename[rename_with_spaces] PASSED [ 92%] tests/test_window.py::test_window_rename[rename_with_escapes] PASSED [ 92%] tests/test_window.py::test_kill_window PASSED [ 92%] tests/test_window.py::test_show_window_options PASSED [ 92%] tests/test_window.py::test_set_window_and_show_window_options PASSED [ 92%] tests/test_window.py::test_set_and_show_window_options PASSED [ 92%] tests/test_window.py::test_empty_window_option_returns_None PASSED [ 93%] tests/test_window.py::test_show_window_option PASSED [ 93%] tests/test_window.py::test_show_window_option_unknown PASSED [ 93%] tests/test_window.py::test_show_window_option_ambiguous PASSED [ 93%] tests/test_window.py::test_set_window_option_ambiguous PASSED [ 93%] tests/test_window.py::test_set_window_option_invalid PASSED [ 93%] tests/test_window.py::test_move_window PASSED [ 93%] tests/test_window.py::test_move_window_to_other_session PASSED [ 93%] tests/test_window.py::test_move_window_relative_returns_fresh_window[after-0] PASSED [ 93%] tests/test_window.py::test_move_window_relative_returns_fresh_window[before-1] PASSED [ 94%] tests/test_window.py::test_move_window_to_other_session_with_destination PASSED [ 94%] tests/test_window.py::test_select_layout_accepts_no_arg PASSED [ 94%] tests/test_window.py::test_empty_window_name PASSED [ 94%] tests/test_window.py::test_split_with_environment[single_env_var] PASSED [ 94%] tests/test_window.py::test_split_with_environment[multiple_env_vars] PASSED [ 94%] tests/test_window.py::test_split_window_zoom PASSED [ 94%] tests/test_window.py::test_resize PASSED [ 94%] tests/test_window.py::test_new_window_with_direction PASSED [ 94%] tests/test_window.py::test_window_context_manager PASSED [ 95%] tests/test_window.py::test_split_start_directory[none_value] PASSED [ 95%] tests/test_window.py::test_split_start_directory[empty_string] PASSED [ 95%] tests/test_window.py::test_split_start_directory[user_path] PASSED [ 95%] tests/test_window.py::test_split_start_directory[relative_path] PASSED [ 95%] tests/test_window.py::test_split_start_directory_pathlib PASSED [ 95%] tests/test_window.py::test_deprecated_window_methods_emit_warning[set_window_option] PASSED [ 95%] tests/test_window.py::test_deprecated_window_methods_emit_warning[show_window_options] PASSED [ 95%] tests/test_window.py::test_deprecated_window_methods_emit_warning[show_window_option] PASSED [ 95%] tests/test_window.py::test_select_layout_spread PASSED [ 96%] tests/test_window.py::test_select_layout_next_previous PASSED [ 96%] tests/test_window.py::test_last_pane PASSED [ 96%] tests/test_window.py::test_next_layout PASSED [ 96%] tests/test_window.py::test_previous_layout PASSED [ 96%] tests/test_window.py::test_select_layout_mutual_exclusion PASSED [ 96%] tests/test_window.py::test_link_unlink_window PASSED [ 96%] tests/test_window.py::test_rotate_window PASSED [ 96%] tests/test_window.py::test_respawn_window PASSED [ 96%] tests/test_window.py::test_swap_window PASSED [ 97%] tests/test_window.py::test_move_window_kill_target PASSED [ 97%] tests/test_window.py::test_move_window_renumber PASSED [ 97%] tests/test_window.py::test_move_window_no_select PASSED [ 97%] tests/test_window.py::test_window_display_message_flags[window_id] PASSED [ 97%] tests/test_window.py::test_window_display_message_flags[window_index_via_format_string] PASSED [ 97%] tests/test_window.py::test_window_display_message_flags[zoomed_flag_default_zero] PASSED [ 97%] tests/test_window.py::test_window_display_message_flags[no_expand_literal] PASSED [ 97%] tests/test_window.py::test_window_display_message_no_text_returns_none PASSED [ 97%] tests/test_window.py::test_window_display_message_target_client PASSED [ 98%] tests/test_window.py::test_window_display_message_warns_on_tmux_error PASSED [ 98%] tests/test_window.py::test_window_zoomed_flag_field_toggle PASSED [ 98%] tests/test_window.py::test_window_search_panes_filter_by_id PASSED [ 98%] tests/test_window.py::test_window_search_panes_no_filter_equivalent_to_property PASSED [ 98%] tests/test_window.py::test_window_format_field_declared_and_hydrated[window_active_clients_list] PASSED [ 98%] tests/test_window.py::test_window_format_field_declared_and_hydrated[window_active_sessions_list] PASSED [ 98%] tests/test_window.py::test_window_format_field_declared_and_hydrated[window_activity_flag] PASSED [ 98%] tests/test_window.py::test_window_format_field_declared_and_hydrated[window_bell_flag] PASSED [ 98%] tests/test_window.py::test_window_format_field_declared_and_hydrated[window_bigger] PASSED [ 99%] tests/test_window.py::test_window_format_field_declared_and_hydrated[window_end_flag] PASSED [ 99%] tests/test_window.py::test_window_format_field_declared_and_hydrated[window_flags] PASSED [ 99%] tests/test_window.py::test_window_format_field_declared_and_hydrated[window_format] PASSED [ 99%] tests/test_window.py::test_window_format_field_declared_and_hydrated[window_last_flag] PASSED [ 99%] tests/test_window.py::test_window_format_field_declared_and_hydrated[window_silence_flag] PASSED [ 99%] tests/test_window.py::test_window_format_field_declared_and_hydrated[window_start_flag] PASSED [ 99%] tests/test_window.py::test_window_format_field_declared_and_hydrated[window_visible_layout] PASSED [ 99%] tests/test_window.py::test_window_flags_field_returns_string PASSED [ 99%] tests/test_window.py::test_window_refresh_raises_when_window_id_is_none PASSED [100%] =================================== FAILURES =================================== ___________________________ test_function_times_out ____________________________ def test_function_times_out() -> None: """Test time outs with retry_until().""" ini = time() def never_true() -> bool: sleep( 0.1, ) # Sleep for 0.1 seconds to simulate work (called ~10 times in 1 second) return False with pytest.raises(exc.WaitTimeout): retry_until(never_true, 1) end = time() > assert 0.9 <= (end - ini) <= 1.1 # Allow for small timing variations ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E assert (1781142599.6841433 - 1781142598.5576127) <= 1.1 tests/test/test_retry.py:50: AssertionError _______________________ test_function_times_out_no_raise _______________________ def test_function_times_out_no_raise() -> None: """Tests retry_until() with exception raising disabled.""" ini = time() def never_true() -> bool: sleep( 0.1, ) # Sleep for 0.1 seconds to simulate work (called ~10 times in 1 second) return False retry_until(never_true, 1, raises=False) end = time() > assert 0.9 <= (end - ini) <= 1.1 # Allow for small timing variations ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E assert (1781142600.8938398 - 1781142599.7812953) <= 1.1 tests/test/test_retry.py:66: AssertionError ___________________ test_function_times_out_no_raise_assert ____________________ def test_function_times_out_no_raise_assert() -> None: """Tests retry_until() with exception raising disabled, returning False.""" ini = time() def never_true() -> bool: sleep( 0.1, ) # Sleep for 0.1 seconds to simulate work (called ~10 times in 1 second) return False assert not retry_until(never_true, 1, raises=False) end = time() > assert 0.9 <= (end - ini) <= 1.1 # Allow for small timing variations ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E assert (1781142602.05391 - 1781142600.9254003) <= 1.1 tests/test/test_retry.py:82: AssertionError =========================== short test summary info ============================ FAILED tests/test/test_retry.py::test_function_times_out - assert (1781142599.6841433 - 1781142598.5576127) <= 1.1 FAILED tests/test/test_retry.py::test_function_times_out_no_raise - assert (1781142600.8938398 - 1781142599.7812953) <= 1.1 FAILED tests/test/test_retry.py::test_function_times_out_no_raise_assert - assert (1781142602.05391 - 1781142600.9254003) <= 1.1 ====== 3 failed, 907 passed, 2 skipped, 6 deselected in 285.11s (0:04:45) ====== ==> ERROR: A failure occurred in check().  Aborting... [!p]104\[?7h]3008;end=c4f0587583944f0ab4b814dcca21a68c\==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/felix-6/build [?25h[?25h[?25hreceiving incremental file list python-libtmux-0.58.0-1-riscv64-build.log python-libtmux-0.58.0-1-riscv64-check.log sent 62 bytes received 10,151 bytes 6,808.67 bytes/sec total size is 81,919 speedup is 8.02