==> Building on magby ==> Checking for remote environment... ==> Syncing package to remote host... sending incremental file list ./ .SRCINFO 700 74% 0.00kB/s 0:00:00 934 100% 228.52kB/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 700 39% 683.59kB/s 0:00:00 1,782 100% 1.70MB/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.55.0-1.log 570 100% 556.64kB/s 0:00:00 570 100% 556.64kB/s 0:00:00 (xfr#6, to-chk=2/9) LICENSES/ sent 792 bytes received 204 bytes 664.00 bytes/sec total size is 3,989 speedup is 4.01 ==> Running pkgctl build --arch riscv64 on remote host... ==> WARNING: invalid architecture: riscv64 ==> Building python-libtmux  -> repo: extra  -> arch: riscv64  -> worker: felix-0 ==> Building python-libtmux for [extra] (riscv64) ]3008;start=f990debfe3574f1c9dfb62dcc538a95b;user=root;hostname=magby.felixc.at;machineid=469582f4838449b2b409e0f312413526;bootid=5bb74c426fc44f0bb057d764ab4ec6a0;pid=4046139;pidfdid=4046140;comm=systemd-nspawn;container=arch-nspawn-4046139;type=container\]11;?\]2;🔵 Container arch-nspawn-4046139 on magby.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=f990debfe3574f1c9dfb62dcc538a95b\==> Building in chroot for [extra] (riscv64)... ==> Synchronizing chroot copy [/var/lib/archbuild/extra-riscv64/root] -> [felix-0]...done ==> Making package: python-libtmux 0.55.0-1 (Sun Mar 29 14:33:54 2026) ==> Retrieving sources...  -> Found libtmux-0.55.0.tar.gz ==> Validating source files with sha512sums... libtmux-0.55.0.tar.gz ... Passed ==> Validating source files with b2sums... libtmux-0.55.0.tar.gz ... Passed ]3008;start=8811d8ef1e22448bacce1bd0b0ecf993;user=root;hostname=magby.felixc.at;machineid=469582f4838449b2b409e0f312413526;bootid=5bb74c426fc44f0bb057d764ab4ec6a0;pid=4047143;pidfdid=4047144;comm=systemd-nspawn;container=arch-nspawn-4047143;type=container\]11;?\]2;🔵 Container arch-nspawn-4047143 on magby.felixc.at\==> Making package: python-libtmux 0.55.0-1 (Sun Mar 29 14:34:03 2026) ==> Checking runtime dependencies... ==> Installing missing dependencies... [?25lresolving dependencies... looking for conflicting packages... Package (5) New Version Net Change extra/libutempter 1.2.3-1 0.02 MiB core/mpdecimal 4.0.1-3 0.31 MiB core/python 3.14.3-1 132.79 MiB extra/python-typing_extensions 4.15.0-3 0.52 MiB extra/tmux 3.6_a-1 1.09 MiB Total Installed Size: 134.74 MiB :: Proceed with installation? [Y/n] checking keyring... checking package integrity... loading package files... checking for file conflicts... :: Processing package changes... installing mpdecimal... installing python... Optional dependencies for python python-setuptools: for building Python packages using tooling that is usually bundled with Python python-pip: for installing Python packages using tooling that is usually bundled with Python python-pipx: for installing Python software not packaged on Arch Linux sqlite: for a default database integration [installed] xz: for lzma [installed] tk: for tkinter 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.5-7.1 0.03 MiB extra/python-iniconfig 2.3.0-1 0.07 MiB 0.02 MiB extra/python-packaging 26.0-1 0.89 MiB 0.15 MiB extra/python-pathspec 1.0.4-1 0.46 MiB 0.07 MiB extra/python-pluggy 1.6.0-3.1 0.23 MiB extra/python-pygments 2.19.2-3 15.30 MiB extra/python-pyproject-hooks 1.2.0-6 0.11 MiB extra/python-trove-classifiers 2026.1.14.14-1.1 0.16 MiB core/procps-ng 4.0.6-1 2.56 MiB extra/python-build 1.4.2-1 0.25 MiB 0.05 MiB extra/python-hatchling 1.28.0-3 1.06 MiB extra/python-installer 0.7.0-14 0.20 MiB extra/python-pytest 1:8.4.2-3 4.69 MiB 0.77 MiB extra/python-pytest-mock 3.14.1-1 0.11 MiB 0.02 MiB extra/python-pytest-rerunfailures 16.1-2 0.12 MiB extra/python-wheel 0.46.3-1 0.31 MiB 0.07 MiB Total Download Size: 1.16 MiB Total Installed Size: 26.54 MiB :: Proceed with installation? [Y/n] :: Retrieving packages... python-pytest-1:8.4.2-3-any downloading... python-packaging-26.0-1-any downloading... python-pathspec-1.0.4-1-any downloading... python-wheel-0.46.3-1-any downloading... python-build-1.4.2-1-any downloading... python-pytest-mock-3.14.1-1-any downloading... python-iniconfig-2.3.0-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.55.0.tar.gz ==> WARNING: Skipping all source file integrity checks. ==> Extracting sources...  -> Extracting libtmux-0.55.0.tar.gz with bsdtar ==> Starting build()... * Building wheel... Successfully built libtmux-0.55.0-py3-none-any.whl ==> Starting check()... ============================= test session starts ============================== platform linux -- Python 3.14.3, pytest-8.4.2, pluggy-1.6.0 -- /usr/bin/python cachedir: .pytest_cache rootdir: /build/python-libtmux/src/libtmux-0.55.0 configfile: pyproject.toml plugins: libtmux-0.55.0, rerunfailures-16.1, mock-3.14.1 collecting ... collected 627 items / 2 deselected / 625 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 [ 1%] tests/_internal/test_query_list.py::test_filter[items7-None-expected_result7] PASSED [ 1%] tests/_internal/test_query_list.py::test_filter[items8-filter_expr8-expected_result8] PASSED [ 1%] 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 [ 2%] tests/_internal/test_query_list.py::test_filter[items13-filter_expr13-expected_result13] PASSED [ 2%] tests/_internal/test_query_list.py::test_filter[items14-filter_expr14-expected_result14] PASSED [ 2%] tests/_internal/test_query_list.py::test_filter[items15-filter_expr15-expected_result15] PASSED [ 2%] tests/_internal/test_query_list.py::test_filter[items16-filter_expr16-expected_result16] PASSED [ 2%] tests/_internal/test_query_list.py::test_filter[items17-filter_expr17-expected_result17] PASSED [ 2%] tests/_internal/test_query_list.py::test_filter[items18-filter_expr18-expected_result18] PASSED [ 3%] tests/_internal/test_query_list.py::test_filter[items19-filter_expr19-expected_result19] PASSED [ 3%] tests/_internal/test_query_list.py::test_filter[items20-filter_expr20-expected_result20] PASSED [ 3%] tests/_internal/test_query_list.py::test_filter[items21-filter_expr21-expected_result21] PASSED [ 3%] tests/_internal/test_query_list.py::test_filter[items22-filter_expr22-expected_result22] PASSED [ 3%] tests/_internal/test_query_list.py::test_filter[items23-filter_expr23-expected_result23] PASSED [ 3%] tests/_internal/test_query_list.py::test_filter[items24-filter_expr24-expected_result24] PASSED [ 4%] tests/_internal/test_query_list.py::test_filter[items25-filter_expr25-expected_result25] PASSED [ 4%] tests/_internal/test_query_list.py::test_filter[items26-filter_expr26-expected_result26] PASSED [ 4%] tests/_internal/test_query_list.py::test_filter[items27-filter_expr27-expected_result27] PASSED [ 4%] tests/_internal/test_query_list.py::test_filter[items28-filter_expr28-expected_result28] PASSED [ 4%] tests/_internal/test_query_list.py::test_filter[items29-filter_expr29-expected_result29] PASSED [ 4%] tests/_internal/test_query_list.py::test_filter[items30-filter_expr30-expected_result30] PASSED [ 4%] tests/_internal/test_query_list.py::test_filter[items31-filter_expr31-expected_result31] PASSED [ 5%] tests/_internal/test_query_list.py::test_filter[items32-filter_expr32-expected_result32] PASSED [ 5%] tests/_internal/test_query_list.py::test_filter[items33-None-expected_result33] PASSED [ 5%] tests/_internal/test_query_list.py::test_filter[items34-filter_expr34-expected_result34] PASSED [ 5%] tests/_internal/test_query_list.py::test_filter[items35-filter_expr35-expected_result35] PASSED [ 5%] tests/_internal/test_query_list.py::test_filter[items36--expected_result36] PASSED [ 5%] tests/_internal/test_query_list.py::test_filter[items37--expected_result37] PASSED [ 6%] tests/legacy_api/test_common.py::test_allows_master_version PASSED [ 6%] tests/legacy_api/test_common.py::test_allows_next_version PASSED [ 6%] tests/legacy_api/test_common.py::test_get_version_openbsd PASSED [ 6%] tests/legacy_api/test_common.py::test_get_version_too_low PASSED [ 6%] tests/legacy_api/test_common.py::test_ignores_letter_versions PASSED [ 6%] tests/legacy_api/test_common.py::test_error_version_less_1_7 PASSED [ 7%] tests/legacy_api/test_common.py::test_has_version PASSED [ 7%] tests/legacy_api/test_common.py::test_has_gt_version PASSED [ 7%] tests/legacy_api/test_common.py::test_has_gte_version PASSED [ 7%] tests/legacy_api/test_common.py::test_has_lt_version PASSED [ 7%] tests/legacy_api/test_common.py::test_has_lte_version PASSED [ 7%] tests/legacy_api/test_common.py::test_tmux_cmd_raises_on_not_found PASSED [ 8%] tests/legacy_api/test_common.py::test_tmux_cmd_unicode PASSED [ 8%] tests/legacy_api/test_common.py::test_session_check_name[-True-empty] PASSED [ 8%] tests/legacy_api/test_common.py::test_session_check_name[None-True-empty] PASSED [ 8%] tests/legacy_api/test_common.py::test_session_check_name[my great session.-True-contains periods] PASSED [ 8%] tests/legacy_api/test_common.py::test_session_check_name[name: great session-True-contains colons] PASSED [ 8%] tests/legacy_api/test_common.py::test_session_check_name[new great session-False-None] PASSED [ 8%] tests/legacy_api/test_common.py::test_session_check_name[ajf8a3fa83fads,,,a-False-None] PASSED [ 9%] tests/legacy_api/test_common.py::test_get_libtmux_version PASSED [ 9%] tests/legacy_api/test_pane.py::test_resize_pane_raises_deprecated_error PASSED [ 9%] tests/legacy_api/test_pane.py::test_select_pane_raises_deprecated_error PASSED [ 9%] tests/legacy_api/test_pane.py::test_split_window_raises_deprecated_error PASSED [ 9%] tests/legacy_api/test_pane.py::test_pane_get_raises_deprecated_error PASSED [ 9%] tests/legacy_api/test_pane.py::test_pane_getitem_raises_deprecated_error PASSED [ 10%] tests/legacy_api/test_server.py::test_kill_server_raises_deprecated_error PASSED [ 10%] tests/legacy_api/test_server.py::test_server_get_by_id_raises_deprecated_error PASSED [ 10%] tests/legacy_api/test_server.py::test_server_where_raises_deprecated_error PASSED [ 10%] tests/legacy_api/test_server.py::test_server_find_where_raises_deprecated_error PASSED [ 10%] tests/legacy_api/test_server.py::test_server_list_sessions_raises_deprecated_error PASSED [ 10%] tests/legacy_api/test_server.py::test_server_children_raises_deprecated_error PASSED [ 11%] tests/legacy_api/test_server.py::test_server__sessions_raises_deprecated_error PASSED [ 11%] tests/legacy_api/test_server.py::test_server__list_sessions_raises_deprecated_error PASSED [ 11%] tests/legacy_api/test_server.py::test_server__list_windows_raises_deprecated_error PASSED [ 11%] tests/legacy_api/test_server.py::test_server__update_windows_raises_deprecated_error PASSED [ 11%] tests/legacy_api/test_server.py::test_server__list_panes_raises_deprecated_error PASSED [ 11%] tests/legacy_api/test_server.py::test_server__update_panes_raises_deprecated_error PASSED [ 12%] tests/legacy_api/test_session.py::test_attached_window_raises_deprecated_error PASSED [ 12%] tests/legacy_api/test_session.py::test_attached_pane_raises_deprecated_error PASSED [ 12%] tests/legacy_api/test_session.py::test_attach_session_raises_deprecated_error PASSED [ 12%] tests/legacy_api/test_session.py::test_kill_session_raises_deprecated_error PASSED [ 12%] tests/legacy_api/test_session.py::test_session_get_raises_deprecated_error PASSED [ 12%] tests/legacy_api/test_session.py::test_session_getitem_raises_deprecated_error PASSED [ 12%] tests/legacy_api/test_session.py::test_session_get_by_id_raises_deprecated_error PASSED [ 13%] tests/legacy_api/test_session.py::test_session_where_raises_deprecated_error PASSED [ 13%] tests/legacy_api/test_session.py::test_session_find_where_raises_deprecated_error PASSED [ 13%] tests/legacy_api/test_session.py::test_session_list_windows_raises_deprecated_error PASSED [ 13%] tests/legacy_api/test_session.py::test_session_children_raises_deprecated_error PASSED [ 13%] tests/legacy_api/test_session.py::test_session__windows_raises_deprecated_error PASSED [ 13%] tests/legacy_api/test_session.py::test_session__list_windows_raises_deprecated_error PASSED [ 14%] tests/legacy_api/test_tmuxobject.py::test_server_find_where_raises_deprecated_error PASSED [ 14%] tests/legacy_api/test_tmuxobject.py::test_session_find_where_raises_deprecated_error PASSED [ 14%] tests/legacy_api/test_tmuxobject.py::test_window_find_where_raises_deprecated_error PASSED [ 14%] tests/legacy_api/test_tmuxobject.py::test_server_where_raises_deprecated_error PASSED [ 14%] tests/legacy_api/test_tmuxobject.py::test_session_where_raises_deprecated_error PASSED [ 14%] tests/legacy_api/test_tmuxobject.py::test_window_where_raises_deprecated_error PASSED [ 15%] tests/legacy_api/test_tmuxobject.py::test_server_get_by_id_raises_deprecated_error PASSED [ 15%] tests/legacy_api/test_tmuxobject.py::test_session_get_by_id_raises_deprecated_error PASSED [ 15%] tests/legacy_api/test_tmuxobject.py::test_window_get_by_id_raises_deprecated_error PASSED [ 15%] tests/legacy_api/test_version.py::test_version[1] PASSED [ 15%] tests/legacy_api/test_version.py::test_version[1.0] PASSED [ 15%] tests/legacy_api/test_version.py::test_version[1.0.0] PASSED [ 16%] tests/legacy_api/test_version.py::test_version[1.0.0b] PASSED [ 16%] tests/legacy_api/test_version.py::test_version[1.0.0b1] PASSED [ 16%] tests/legacy_api/test_version.py::test_version[1.0.0b-openbsd] PASSED [ 16%] tests/legacy_api/test_version.py::test_version[1.0.0-next] PASSED [ 16%] tests/legacy_api/test_version.py::test_version[1.0.0-next.1] PASSED [ 16%] tests/legacy_api/test_version.py::test_version_compare[1-eq-1-False] PASSED [ 16%] tests/legacy_api/test_version.py::test_version_compare[1-eq-1.0-False] PASSED [ 17%] tests/legacy_api/test_version.py::test_version_compare[1-eq-1.0.0-False] PASSED [ 17%] tests/legacy_api/test_version.py::test_version_compare[1-gt-1.0.0a-False] PASSED [ 17%] tests/legacy_api/test_version.py::test_version_compare[1-gt-1.0.0b-False] PASSED [ 17%] tests/legacy_api/test_version.py::test_version_compare[1-lt-1.0.0p1-False] PASSED [ 17%] tests/legacy_api/test_version.py::test_version_compare[1-lt-1.0.0-openbsd-False] PASSED [ 17%] tests/legacy_api/test_version.py::test_version_compare[1-lt-1-AssertionError] PASSED [ 18%] tests/legacy_api/test_version.py::test_version_compare[1.0.0c-gt-1.0.0b-False] PASSED [ 18%] tests/legacy_api/test_window.py::test_split_window_raises_deprecated_error PASSED [ 18%] tests/legacy_api/test_window.py::test_attached_pane_raises_deprecated_error PASSED [ 18%] tests/legacy_api/test_window.py::test_select_window_raises_deprecated_error PASSED [ 18%] tests/legacy_api/test_window.py::test_kill_window_raises_deprecated_error PASSED [ 18%] tests/legacy_api/test_window.py::test_set_window_option_emits_deprecation_warning PASSED [ 19%] tests/legacy_api/test_window.py::test_show_window_options_emits_deprecation_warning PASSED [ 19%] tests/legacy_api/test_window.py::test_show_window_option_emits_deprecation_warning PASSED [ 19%] tests/legacy_api/test_window.py::test_window_get_raises_deprecated_error PASSED [ 19%] tests/legacy_api/test_window.py::test_window_getitem_raises_deprecated_error PASSED [ 19%] tests/legacy_api/test_window.py::test_window_get_by_id_raises_deprecated_error PASSED [ 19%] tests/legacy_api/test_window.py::test_window_where_raises_deprecated_error PASSED [ 20%] tests/legacy_api/test_window.py::test_window_find_where_raises_deprecated_error PASSED [ 20%] tests/legacy_api/test_window.py::test_window_list_panes_raises_deprecated_error PASSED [ 20%] tests/legacy_api/test_window.py::test_window_children_raises_deprecated_error PASSED [ 20%] tests/legacy_api/test_window.py::test_window__panes_raises_deprecated_error PASSED [ 20%] tests/legacy_api/test_window.py::test_window__list_panes_raises_deprecated_error PASSED [ 20%] tests/test/test_constants.py::test_test_session_prefix PASSED [ 20%] tests/test/test_constants.py::test_retry_timeout_seconds_default PASSED [ 21%] tests/test/test_constants.py::test_retry_timeout_seconds_env PASSED [ 21%] tests/test/test_constants.py::test_retry_interval_seconds_default PASSED [ 21%] tests/test/test_constants.py::test_retry_interval_seconds_env PASSED [ 21%] tests/test/test_environment.py::test_environment_var_guard_set PASSED [ 21%] tests/test/test_environment.py::test_environment_var_guard_unset PASSED [ 21%] tests/test/test_environment.py::test_environment_var_guard_context_manager PASSED [ 22%] tests/test/test_environment.py::test_environment_var_guard_cleanup_on_exception PASSED [ 22%] tests/test/test_environment.py::test_environment_var_guard_unset_and_reset PASSED [ 22%] tests/test/test_environment.py::test_environment_var_guard_exit_with_exception PASSED [ 22%] tests/test/test_environment.py::test_environment_var_guard_unset_previously_set PASSED [ 22%] tests/test/test_random.py::test_random_str_sequence_default PASSED [ 22%] tests/test/test_random.py::test_random_str_sequence_custom_chars PASSED [ 23%] tests/test/test_random.py::test_random_str_sequence_uniqueness PASSED [ 23%] tests/test/test_random.py::test_random_str_sequence_iterator PASSED [ 23%] tests/test/test_random.py::test_random_str_sequence_doctest_examples PASSED [ 23%] tests/test/test_random.py::test_namer_global_instance PASSED [ 23%] tests/test/test_random.py::test_get_test_session_name_doctest_examples PASSED [ 23%] tests/test/test_random.py::test_get_test_session_name_default_prefix PASSED [ 24%] tests/test/test_random.py::test_get_test_session_name_custom_prefix PASSED [ 24%] tests/test/test_random.py::test_get_test_session_name_loop_behavior PASSED [ 24%] tests/test/test_random.py::test_get_test_window_name_doctest_examples PASSED [ 24%] tests/test/test_random.py::test_get_test_window_name_default_prefix PASSED [ 24%] tests/test/test_random.py::test_get_test_window_name_custom_prefix PASSED [ 24%] tests/test/test_random.py::test_get_test_window_name_loop_behavior PASSED [ 24%] tests/test/test_random.py::test_get_test_window_name_requires_prefix PASSED [ 25%] tests/test/test_random.py::test_random_str_sequence_self_type PASSED [ 25%] tests/test/test_random.py::test_random_str_sequence_small_character_set PASSED [ 25%] tests/test/test_random.py::test_random_str_sequence_insufficient_characters PASSED [ 25%] tests/test/test_random.py::test_next_method_directly PASSED [ 25%] tests/test/test_random.py::test_namer_initialization PASSED [ 25%] tests/test/test_random.py::test_random_str_sequence_iter_next_methods PASSED [ 26%] tests/test/test_random.py::test_collisions_with_real_objects PASSED [ 26%] tests/test/test_random.py::test_imports_coverage PASSED [ 26%] tests/test/test_random.py::test_iterator_protocol PASSED [ 26%] tests/test/test_random.py::test_get_test_session_name_collision_handling PASSED [ 26%] tests/test/test_random.py::test_get_test_window_name_null_prefix PASSED [ 26%] tests/test/test_random.py::test_import_typing_coverage PASSED [ 27%] tests/test/test_random.py::test_random_str_sequence_direct_instantiation PASSED [ 27%] tests/test/test_random.py::test_get_test_window_name_collision_handling PASSED [ 27%] tests/test/test_random.py::test_random_str_sequence_return_statements PASSED [ 27%] tests/test/test_random.py::test_get_test_session_name_implementation_details PASSED [ 27%] tests/test/test_random.py::test_get_test_window_name_branch_coverage PASSED [ 27%] tests/test/test_retry.py::test_retry_three_times PASSED [ 28%] tests/test/test_retry.py::test_function_times_out PASSED [ 28%] tests/test/test_retry.py::test_function_times_out_no_raise PASSED [ 28%] tests/test/test_retry.py::test_function_times_out_no_raise_assert PASSED [ 28%] tests/test/test_retry.py::test_retry_three_times_no_raise_assert PASSED [ 28%] tests/test/test_sparse_array.py::test_is_sparse_array_list[empty_dict] PASSED [ 28%] tests/test/test_sparse_array.py::test_is_sparse_array_list[sparse_arrays_only] PASSED [ 28%] tests/test/test_sparse_array.py::test_is_sparse_array_list[mixed_values] PASSED [ 29%] tests/test/test_sparse_array.py::test_is_sparse_array_list[strings_only] PASSED [ 29%] tests/test/test_sparse_array.py::test_is_sparse_array_list[none_value] PASSED [ 29%] tests/test/test_sparse_array.py::test_sparse_array_append[append_to_empty] PASSED [ 29%] tests/test/test_sparse_array.py::test_sparse_array_append[append_after_add] PASSED [ 29%] tests/test/test_sparse_array.py::test_sparse_array_append[multiple_appends] PASSED [ 29%] tests/test/test_sparse_array.py::test_sparse_array_iter_values[sorted_order] PASSED [ 30%] tests/test/test_sparse_array.py::test_sparse_array_iter_values[empty] PASSED [ 30%] tests/test/test_sparse_array.py::test_sparse_array_iter_values[consecutive] PASSED [ 30%] tests/test/test_sparse_array.py::test_sparse_array_as_list[sorted_order] PASSED [ 30%] tests/test/test_sparse_array.py::test_sparse_array_as_list[empty] PASSED [ 30%] tests/test/test_sparse_array.py::test_sparse_array_as_list[consecutive] PASSED [ 30%] tests/test/test_temporary.py::test_temp_session_creates_and_destroys PASSED [ 31%] tests/test/test_temporary.py::test_temp_session_with_name PASSED [ 31%] tests/test/test_temporary.py::test_temp_session_cleanup_on_exception PASSED [ 31%] tests/test/test_temporary.py::test_temp_window_creates_and_destroys PASSED [ 31%] tests/test/test_temporary.py::test_temp_window_with_name PASSED [ 31%] tests/test/test_temporary.py::test_temp_window_cleanup_on_exception PASSED [ 31%] tests/test/test_temporary.py::test_temp_session_outside_context PASSED [ 32%] tests/test/test_temporary.py::test_temp_window_outside_context PASSED [ 32%] tests/test_common.py::test_has_version PASSED [ 32%] tests/test_common.py::test_tmux_cmd_raises_on_not_found PASSED [ 32%] tests/test_common.py::test_tmux_cmd_unicode PASSED [ 32%] tests/test_common.py::test_session_check_name[empty_string] PASSED [ 32%] tests/test_common.py::test_session_check_name[none_value] PASSED [ 32%] tests/test_common.py::test_session_check_name[contains_period] PASSED [ 33%] tests/test_common.py::test_session_check_name[contains_colon] PASSED [ 33%] tests/test_common.py::test_session_check_name[valid_name] PASSED [ 33%] tests/test_common.py::test_session_check_name[valid_with_special_chars] PASSED [ 33%] tests/test_common.py::test_get_libtmux_version PASSED [ 33%] tests/test_common.py::test_version_comparison[gt_older_version] PASSED [ 33%] tests/test_common.py::test_version_comparison[gt_older_version_with_letter] PASSED [ 34%] tests/test_common.py::test_version_comparison[gt_newer_version] PASSED [ 34%] tests/test_common.py::test_version_comparison[gt_newer_version_with_letter] PASSED [ 34%] tests/test_common.py::test_version_comparison[gte_older_version] PASSED [ 34%] tests/test_common.py::test_version_comparison[gte_older_version_with_letter] PASSED [ 34%] tests/test_common.py::test_version_comparison[gte_current_version] PASSED [ 34%] tests/test_common.py::test_version_comparison[gte_newer_version] PASSED [ 35%] tests/test_common.py::test_version_comparison[gte_newer_version_with_letter] PASSED [ 35%] tests/test_common.py::test_version_comparison[lt_newer_version_with_letter] PASSED [ 35%] tests/test_common.py::test_version_comparison[lt_newer_version] PASSED [ 35%] tests/test_common.py::test_version_comparison[lt_older_version] PASSED [ 35%] tests/test_common.py::test_version_comparison[lt_current_version] PASSED [ 35%] tests/test_common.py::test_version_comparison[lte_newer_version_with_letter] PASSED [ 36%] tests/test_common.py::test_version_comparison[lte_newer_version] PASSED [ 36%] tests/test_common.py::test_version_comparison[lte_current_version] PASSED [ 36%] tests/test_common.py::test_version_comparison[lte_older_version] PASSED [ 36%] tests/test_common.py::test_version_comparison[lte_older_version_with_letter] PASSED [ 36%] tests/test_common.py::test_version_parsing[master_version] PASSED [ 36%] tests/test_common.py::test_version_parsing[next_version] PASSED [ 36%] tests/test_common.py::test_version_parsing[openbsd_version] PASSED [ 37%] tests/test_common.py::test_version_parsing[too_low_version] PASSED [ 37%] tests/test_common.py::test_version_validation[accepts_letter_in_min_version_1_9a] PASSED [ 37%] tests/test_common.py::test_version_validation[accepts_letter_in_min_version_1_8a] PASSED [ 37%] tests/test_common.py::test_version_validation[accepts_version_1_8] PASSED [ 37%] tests/test_common.py::test_version_validation[accepts_version_1_8a] PASSED [ 37%] tests/test_common.py::test_version_validation[accepts_version_1_9a] PASSED [ 38%] tests/test_common.py::test_version_validation[rejects_version_1_7] PASSED [ 38%] tests/test_common.py::test_version_validation[accepts_master_version] PASSED [ 38%] tests/test_common.py::test_version_validation[accepts_next_version] PASSED [ 38%] tests/test_common.py::test_version_validation[accepts_openbsd_version] PASSED [ 38%] tests/test_common.py::test_version_validation[accepts_dev_version] PASSED [ 38%] tests/test_common.py::test_version_validation[accepts_rc_version] PASSED [ 39%] tests/test_common.py::test_tmux_cmd_pre_execution_logging PASSED [ 39%] tests/test_dataclasses.py::test_pane PASSED [ 39%] tests/test_dataclasses.py::test_querylist PASSED [ 39%] tests/test_hooks.py::test_hooks_raw_cmd PASSED [ 39%] tests/test_hooks.py::test_hooks_dataclass PASSED [ 39%] tests/test_hooks.py::test_hooks_mixin PASSED [ 40%] tests/test_hooks.py::test_hook_set_show_unset_cycle[alert_activity] PASSED [ 40%] tests/test_hooks.py::test_hook_set_show_unset_cycle[alert_bell] PASSED [ 40%] tests/test_hooks.py::test_hook_set_show_unset_cycle[alert_silence] PASSED [ 40%] tests/test_hooks.py::test_hook_set_show_unset_cycle[client_active] PASSED [ 40%] tests/test_hooks.py::test_hook_set_show_unset_cycle[client_attached] PASSED [ 40%] tests/test_hooks.py::test_hook_set_show_unset_cycle[client_detached] PASSED [ 40%] tests/test_hooks.py::test_hook_set_show_unset_cycle[client_focus_in] PASSED [ 41%] tests/test_hooks.py::test_hook_set_show_unset_cycle[client_focus_out] PASSED [ 41%] tests/test_hooks.py::test_hook_set_show_unset_cycle[client_resized] PASSED [ 41%] tests/test_hooks.py::test_hook_set_show_unset_cycle[client_session_changed] PASSED [ 41%] tests/test_hooks.py::test_hook_set_show_unset_cycle[session_created] PASSED [ 41%] tests/test_hooks.py::test_hook_set_show_unset_cycle[session_closed] PASSED [ 41%] tests/test_hooks.py::test_hook_set_show_unset_cycle[session_renamed] PASSED [ 42%] tests/test_hooks.py::test_hook_set_show_unset_cycle[window_linked] PASSED [ 42%] tests/test_hooks.py::test_hook_set_show_unset_cycle[window_renamed] PASSED [ 42%] tests/test_hooks.py::test_hook_set_show_unset_cycle[window_resized] PASSED [ 42%] tests/test_hooks.py::test_hook_set_show_unset_cycle[window_unlinked] PASSED [ 42%] tests/test_hooks.py::test_hook_set_show_unset_cycle[session_window_changed] PASSED [ 42%] tests/test_hooks.py::test_hook_set_show_unset_cycle[pane_died] PASSED [ 43%] tests/test_hooks.py::test_hook_set_show_unset_cycle[pane_exited] PASSED [ 43%] tests/test_hooks.py::test_hook_set_show_unset_cycle[pane_focus_in] PASSED [ 43%] tests/test_hooks.py::test_hook_set_show_unset_cycle[pane_focus_out] PASSED [ 43%] tests/test_hooks.py::test_hook_set_show_unset_cycle[pane_mode_changed] PASSED [ 43%] tests/test_hooks.py::test_hook_set_show_unset_cycle[pane_set_clipboard] PASSED [ 43%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_bind_key] PASSED [ 44%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_capture_pane] PASSED [ 44%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_copy_mode] PASSED [ 44%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_display_message] PASSED [ 44%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_display_panes] PASSED [ 44%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_kill_pane] PASSED [ 44%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_list_buffers] PASSED [ 44%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_list_clients] PASSED [ 45%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_list_keys] PASSED [ 45%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_list_panes] PASSED [ 45%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_list_sessions] PASSED [ 45%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_list_windows] PASSED [ 45%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_load_buffer] PASSED [ 45%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_lock_server] PASSED [ 46%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_new_session] PASSED [ 46%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_new_window] PASSED [ 46%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_paste_buffer] PASSED [ 46%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_pipe_pane] PASSED [ 46%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_queue] PASSED [ 46%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_refresh_client] PASSED [ 47%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_rename_session] PASSED [ 47%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_rename_window] PASSED [ 47%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_resize_pane] PASSED [ 47%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_resize_window] PASSED [ 47%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_save_buffer] PASSED [ 47%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_select_layout] PASSED [ 48%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_select_pane] PASSED [ 48%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_select_window] PASSED [ 48%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_send_keys] PASSED [ 48%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_set_buffer] PASSED [ 48%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_set_environment] PASSED [ 48%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_set_hook] PASSED [ 48%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_set_option] PASSED [ 49%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_show_environment] PASSED [ 49%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_show_messages] PASSED [ 49%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_show_options] PASSED [ 49%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_split_window] PASSED [ 49%] tests/test_hooks.py::test_hook_set_show_unset_cycle[after_unbind_key] PASSED [ 49%] tests/test_hooks.py::test_new_hooks_version_gated[pane_title_changed] PASSED [ 50%] tests/test_hooks.py::test_set_hooks[set_hooks_with_dict] PASSED [ 50%] tests/test_hooks.py::test_set_hooks[set_hooks_with_list] PASSED [ 50%] tests/test_hooks.py::test_set_hooks[set_hooks_clear_existing] PASSED [ 50%] tests/test_hooks.py::test_show_hook_returns_sparse_array PASSED [ 50%] tests/test_hooks.py::test_show_hook_indexed_lookup[index_zero-session-renamed-0-display-message 'test zero'] PASSED [ 50%] tests/test_hooks.py::test_show_hook_indexed_lookup[index_five-session-renamed-5-display-message 'test five'] PASSED [ 51%] tests/test_hooks.py::test_show_hook_indexed_lookup[window_hook-window-renamed-0-display-message 'window test'] PASSED [ 51%] tests/test_hooks.py::test_set_hooks_with_sparse_array PASSED [ 51%] tests/test_hooks.py::test_set_hooks_method_chaining PASSED [ 51%] tests/test_hooks.py::test_unset_hook_clears_all_indices PASSED [ 51%] tests/test_hooks.py::test_set_hook_append_flag PASSED [ 51%] tests/test_hooks.py::test_show_hooks_stores_string_values[string_hook_value] PASSED [ 52%] tests/test_hooks.py::test_show_hooks_stores_string_values[multiple_hooks] PASSED [ 52%] tests/test_hooks.py::test_run_hook_basic PASSED [ 52%] tests/test_hooks.py::test_set_hook_flag_combinations[append_to_existing] PASSED [ 52%] tests/test_hooks.py::test_set_hook_flag_combinations[global_hook] PASSED [ 52%] tests/test_hooks.py::test_set_hook_flag_combinations[run_immediately] PASSED [ 52%] tests/test_hooks.py::test_set_hook_flag_combinations[append_and_global] PASSED [ 52%] tests/test_hooks.py::test_hook_scope_handling[session_scope] PASSED [ 53%] tests/test_hooks.py::test_hook_scope_handling[window_scope] PASSED [ 53%] tests/test_hooks.py::test_hook_scope_handling[pane_scope] PASSED [ 53%] tests/test_hooks.py::test_show_hooks_parsing_edge_cases[normal_hook_value] PASSED [ 53%] tests/test_hooks.py::test_show_hooks_parsing_edge_cases[multiple_indexed_hooks] PASSED [ 53%] tests/test_hooks.py::test_show_hooks_parsing_edge_cases[multiple_different_hooks] PASSED [ 53%] tests/test_hooks.py::test_show_hooks_empty_result PASSED [ 54%] tests/test_logging.py::test_tmux_cmd_debug_logging_schema PASSED [ 54%] tests/test_logging.py::test_lifecycle_info_logging_schema PASSED [ 54%] tests/test_logging.py::test_server_new_session_info_logging PASSED [ 54%] tests/test_logging.py::test_server_kill_info_logging PASSED [ 54%] tests/test_logging.py::test_window_rename_info_logging PASSED [ 54%] tests/test_logging.py::test_window_kill_all_except_logging PASSED [ 55%] tests/test_logging.py::test_pane_split_info_logging PASSED [ 55%] tests/test_logging.py::test_pane_kill_all_except_logging PASSED [ 55%] tests/test_logging.py::test_session_kill_all_except_logging PASSED [ 55%] tests/test_logging.py::test_server_new_session_surfaces_kill_session_stderr PASSED [ 55%] tests/test_logging.py::test_options_warning_logging_schema PASSED [ 55%] tests/test_options.py::test_options PASSED [ 56%] tests/test_options.py::test_options_server PASSED [ 56%] tests/test_options.py::test_options_session PASSED [ 56%] tests/test_options.py::test_options_window PASSED [ 56%] tests/test_options.py::test_options_pane PASSED [ 56%] tests/test_options.py::test_options_grid PASSED [ 56%] tests/test_options.py::test_custom_options PASSED [ 56%] tests/test_options.py::test_terminal_features PASSED [ 57%] tests/test_options.py::test_terminal_overrides PASSED [ 57%] tests/test_options.py::test_terminal_overrides_multi_feature[two_flags-xterm*:smcup@:rmcup@-xterm*-expected_features0] PASSED [ 57%] tests/test_options.py::test_terminal_overrides_multi_feature[flag_and_keyval-xterm*:XT:Ms=clipboard-xterm*-expected_features1] PASSED [ 57%] tests/test_options.py::test_terminal_overrides_multi_feature[multiple_keyvals-screen*:Tc:RGB:setab=test-screen*-expected_features2] PASSED [ 57%] tests/test_options.py::test_terminal_overrides_multi_feature[integer_value-tmux*:colors=256:Tc-tmux*-expected_features3] PASSED [ 57%] tests/test_options.py::test_command_alias PASSED [ 58%] tests/test_options.py::test_user_keys PASSED [ 58%] tests/test_options.py::test_mocked_cmd_stdoutclass_fixture[terminal-features] PASSED [ 58%] tests/test_options.py::test_mocked_cmd_stdoutclass_fixture[command-alias] PASSED [ 58%] tests/test_options.py::test_show_option_pane_fixture[terminal-features] PASSED [ 58%] tests/test_options.py::test_show_option_pane_fixture[command-alias] PASSED [ 58%] tests/test_options.py::test_stable_baseline_options_and_hooks PASSED [ 59%] tests/test_options.py::test_high_level_api_expectations PASSED [ 59%] tests/test_options.py::test_complex_option_values PASSED [ 59%] tests/test_options.py::test_style_option_validation PASSED [ 59%] tests/test_options.py::test_option_error_handling PASSED [ 59%] tests/test_options.py::test_terminal_features_edge_cases PASSED [ 59%] tests/test_options.py::test_option_set_show_cycle[server_buffer_limit] PASSED [ 60%] tests/test_options.py::test_option_set_show_cycle[server_escape_time] PASSED [ 60%] tests/test_options.py::test_option_set_show_cycle[server_message_limit] PASSED [ 60%] tests/test_options.py::test_option_set_show_cycle[server_prompt_history_limit] PASSED [ 60%] tests/test_options.py::test_option_set_show_cycle[server_exit_empty] PASSED [ 60%] tests/test_options.py::test_option_set_show_cycle[server_exit_unattached] PASSED [ 60%] tests/test_options.py::test_option_set_show_cycle[server_focus_events] PASSED [ 60%] tests/test_options.py::test_option_set_show_cycle[server_extended_keys] PASSED [ 61%] tests/test_options.py::test_option_set_show_cycle[server_set_clipboard] PASSED [ 61%] tests/test_options.py::test_option_set_show_cycle[server_default_terminal] PASSED [ 61%] tests/test_options.py::test_option_set_show_cycle[server_editor] PASSED [ 61%] tests/test_options.py::test_option_set_show_cycle[session_base_index] PASSED [ 61%] tests/test_options.py::test_option_set_show_cycle[session_display_panes_time] PASSED [ 61%] tests/test_options.py::test_option_set_show_cycle[session_display_time] PASSED [ 62%] tests/test_options.py::test_option_set_show_cycle[session_history_limit] PASSED [ 62%] tests/test_options.py::test_option_set_show_cycle[session_lock_after_time] PASSED [ 62%] tests/test_options.py::test_option_set_show_cycle[session_repeat_time] PASSED [ 62%] tests/test_options.py::test_option_set_show_cycle[session_status_interval] PASSED [ 62%] tests/test_options.py::test_option_set_show_cycle[session_status_left_length] PASSED [ 62%] tests/test_options.py::test_option_set_show_cycle[session_status_right_length] PASSED [ 63%] tests/test_options.py::test_option_set_show_cycle[session_destroy_unattached] PASSED [ 63%] tests/test_options.py::test_option_set_show_cycle[session_mouse] PASSED [ 63%] tests/test_options.py::test_option_set_show_cycle[session_renumber_windows] PASSED [ 63%] tests/test_options.py::test_option_set_show_cycle[session_set_titles] PASSED [ 63%] tests/test_options.py::test_option_set_show_cycle[session_activity_action] PASSED [ 63%] tests/test_options.py::test_option_set_show_cycle[session_bell_action] PASSED [ 64%] tests/test_options.py::test_option_set_show_cycle[session_detach_on_destroy] PASSED [ 64%] tests/test_options.py::test_option_set_show_cycle[session_silence_action] PASSED [ 64%] tests/test_options.py::test_option_set_show_cycle[session_status_keys] PASSED [ 64%] tests/test_options.py::test_option_set_show_cycle[session_status_justify] PASSED [ 64%] tests/test_options.py::test_option_set_show_cycle[session_status_position] PASSED [ 64%] tests/test_options.py::test_option_set_show_cycle[session_visual_activity] PASSED [ 64%] tests/test_options.py::test_option_set_show_cycle[session_visual_bell] PASSED [ 65%] tests/test_options.py::test_option_set_show_cycle[session_visual_silence] PASSED [ 65%] tests/test_options.py::test_option_set_show_cycle[session_default_command] PASSED [ 65%] tests/test_options.py::test_option_set_show_cycle[session_status_left] PASSED [ 65%] tests/test_options.py::test_option_set_show_cycle[session_status_right] PASSED [ 65%] tests/test_options.py::test_option_set_show_cycle[session_status_style] PASSED [ 65%] tests/test_options.py::test_option_set_show_cycle[session_status_left_style] PASSED [ 66%] tests/test_options.py::test_option_set_show_cycle[session_status_right_style] PASSED [ 66%] tests/test_options.py::test_option_set_show_cycle[session_message_style] PASSED [ 66%] tests/test_options.py::test_option_set_show_cycle[window_pane_base_index] PASSED [ 66%] tests/test_options.py::test_option_set_show_cycle[window_monitor_silence] PASSED [ 66%] tests/test_options.py::test_option_set_show_cycle[window_aggressive_resize] PASSED [ 66%] tests/test_options.py::test_option_set_show_cycle[window_automatic_rename] PASSED [ 67%] tests/test_options.py::test_option_set_show_cycle[window_monitor_activity] PASSED [ 67%] tests/test_options.py::test_option_set_show_cycle[window_monitor_bell] PASSED [ 67%] tests/test_options.py::test_option_set_show_cycle[window_wrap_search] PASSED [ 67%] tests/test_options.py::test_option_set_show_cycle[window_clock_mode_style] PASSED [ 67%] tests/test_options.py::test_option_set_show_cycle[window_mode_keys] PASSED [ 67%] tests/test_options.py::test_option_set_show_cycle[window_pane_border_status] PASSED [ 68%] tests/test_options.py::test_option_set_show_cycle[window_window_size] PASSED [ 68%] tests/test_options.py::test_option_set_show_cycle[window_pane_border_format] PASSED [ 68%] tests/test_options.py::test_option_set_show_cycle[window_mode_style] PASSED [ 68%] tests/test_options.py::test_option_set_show_cycle[window_pane_border_style] PASSED [ 68%] tests/test_options.py::test_option_set_show_cycle[window_pane_active_border_style] PASSED [ 68%] tests/test_options.py::test_option_set_show_cycle[window_window_status_style] PASSED [ 68%] tests/test_options.py::test_option_set_show_cycle[window_window_status_current_style] PASSED [ 69%] tests/test_options.py::test_option_set_show_cycle[pane_allow_rename] PASSED [ 69%] tests/test_options.py::test_option_set_show_cycle[pane_alternate_screen] PASSED [ 69%] tests/test_options.py::test_option_set_show_cycle[pane_scroll_on_clear] PASSED [ 69%] tests/test_options.py::test_option_set_show_cycle[pane_synchronize_panes] PASSED [ 69%] tests/test_options.py::test_option_set_show_cycle[pane_allow_passthrough] PASSED [ 69%] tests/test_options.py::test_option_set_show_cycle[pane_remain_on_exit] PASSED [ 70%] tests/test_options.py::test_option_set_show_cycle[pane_window_style] PASSED [ 70%] tests/test_options.py::test_option_set_show_cycle[pane_window_active_style] PASSED [ 70%] tests/test_options.py::test_show_options_returns_expected_keys[server_global] PASSED [ 70%] tests/test_options.py::test_show_options_returns_expected_keys[server_global_inherited] PASSED [ 70%] tests/test_options.py::test_show_options_returns_expected_keys[session_global] PASSED [ 70%] tests/test_options.py::test_show_options_returns_expected_keys[session_global_inherited] PASSED [ 71%] tests/test_options.py::test_show_options_returns_expected_keys[window_global] PASSED [ 71%] tests/test_options.py::test_show_options_returns_expected_keys[window_global_inherited] PASSED [ 71%] tests/test_options.py::test_convert_values_sparse_array[boolean_on_off] PASSED [ 71%] tests/test_options.py::test_convert_values_sparse_array[numeric_conversion] PASSED [ 71%] tests/test_options.py::test_convert_values_sparse_array[mixed_values] PASSED [ 71%] tests/test_options.py::test_convert_values_sparse_array[sparse_indices] PASSED [ 72%] tests/test_options.py::test_convert_values_preserves_sparse_keys PASSED [ 72%] tests/test_options.py::test_show_option_g_parameter_emits_deprecation_warning PASSED [ 72%] tests/test_options.py::test_show_option_indexed_array[indexed_returns_value] PASSED [ 72%] tests/test_options.py::test_show_option_indexed_array[base_name_returns_sparse_array] PASSED [ 72%] tests/test_options.py::test_explode_arrays_preserves_inherited_marker[inherited_array_marker_preserved] PASSED [ 72%] tests/test_options.py::test_explode_arrays_preserves_inherited_marker[non_inherited_array_no_marker] PASSED [ 72%] tests/test_options.py::test_explode_arrays_preserves_inherited_marker[mixed_inherited_indices] PASSED [ 73%] tests/test_pane.py::test_send_keys PASSED [ 73%] tests/test_pane.py::test_set_height PASSED [ 73%] tests/test_pane.py::test_set_width PASSED [ 73%] tests/test_pane.py::test_capture_pane PASSED [ 73%] tests/test_pane.py::test_capture_pane_end PASSED [ 73%] tests/test_pane.py::test_pane_split_window_zoom PASSED [ 74%] tests/test_pane.py::test_resize PASSED [ 74%] tests/test_pane.py::test_split_pane_size PASSED [ 74%] tests/test_pane.py::test_set_title PASSED [ 74%] tests/test_pane.py::test_set_title_special_characters FAILED [ 74%] tests/test_pane.py::test_pane_context_manager PASSED [ 74%] tests/test_pane.py::test_split_start_directory[none_value] PASSED [ 75%] tests/test_pane.py::test_split_start_directory[empty_string] PASSED [ 75%] tests/test_pane.py::test_split_start_directory[user_path] PASSED [ 75%] tests/test_pane.py::test_split_start_directory[relative_path] PASSED [ 75%] tests/test_pane.py::test_split_start_directory_pathlib PASSED [ 75%] tests/test_pane_capture_pane.py::test_capture_pane_flags[basic_capture] PASSED [ 75%] tests/test_pane_capture_pane.py::test_capture_pane_flags[basic_multiline] PASSED [ 76%] tests/test_pane_capture_pane.py::test_capture_pane_flags[escape_sequences_red] PASSED [ 76%] tests/test_pane_capture_pane.py::test_capture_pane_flags[escape_sequences_green] PASSED [ 76%] tests/test_pane_capture_pane.py::test_capture_pane_flags[escape_sequences_bold] PASSED [ 76%] tests/test_pane_capture_pane.py::test_capture_pane_flags[no_escape_sequences] PASSED [ 76%] tests/test_pane_capture_pane.py::test_capture_pane_flags[escape_non_printable_basic] PASSED [ 76%] tests/test_pane_capture_pane.py::test_capture_pane_flags[escape_non_printable_tab] PASSED [ 76%] tests/test_pane_capture_pane.py::test_capture_pane_flags[join_wrapped_long_line] PASSED [ 77%] tests/test_pane_capture_pane.py::test_capture_pane_flags[preserve_trailing_spaces] PASSED [ 77%] tests/test_pane_capture_pane.py::test_capture_pane_flags[no_preserve_trailing] PASSED [ 77%] tests/test_pane_capture_pane.py::test_capture_pane_flags[trim_trailing_basic] PASSED [ 77%] tests/test_pane_capture_pane.py::test_capture_pane_flags[escape_sequences_with_join] PASSED [ 77%] tests/test_pane_capture_pane.py::test_capture_pane_flags[join_with_preserve_trailing] PASSED [ 77%] tests/test_pane_capture_pane.py::test_capture_pane_flags[all_flags_except_trim] PASSED [ 78%] tests/test_pane_capture_pane.py::test_capture_pane_backward_compatible PASSED [ 78%] tests/test_pane_capture_pane.py::test_capture_pane_start_end_with_flags PASSED [ 78%] tests/test_pane_capture_pane.py::test_capture_pane_trim_trailing_warning PASSED [ 78%] tests/test_pytest_plugin.py::test_plugin PASSED [ 78%] tests/test_pytest_plugin.py::test_test_server PASSED [ 78%] tests/test_pytest_plugin.py::test_test_server_with_config PASSED [ 79%] tests/test_pytest_plugin.py::test_test_server_cleanup PASSED [ 79%] tests/test_pytest_plugin.py::test_test_server_multiple PASSED [ 79%] tests/test_server.py::test_has_session PASSED [ 79%] tests/test_server.py::test_socket_name PASSED [ 79%] tests/test_server.py::test_socket_path PASSED [ 79%] tests/test_server.py::test_config PASSED [ 80%] tests/test_server.py::test_256_colors PASSED [ 80%] tests/test_server.py::test_88_colors PASSED [ 80%] tests/test_server.py::test_show_environment PASSED [ 80%] tests/test_server.py::test_getenv PASSED [ 80%] tests/test_server.py::test_show_environment_not_set PASSED [ 80%] tests/test_server.py::test_new_session PASSED [ 80%] tests/test_server.py::test_new_session_returns_populated_session PASSED [ 81%] tests/test_server.py::test_new_session_no_name PASSED [ 81%] tests/test_server.py::test_new_session_shell PASSED [ 81%] tests/test_server.py::test_new_session_shell_env PASSED [ 81%] tests/test_server.py::test_new_session_width_height SKIPPED (tmux 3.2 returns wrong width - test needs rework) [ 81%] tests/test_server.py::test_new_session_environmental_variables PASSED [ 81%] tests/test_server.py::test_no_server_sessions PASSED [ 82%] tests/test_server.py::test_no_server_attached_sessions PASSED [ 82%] tests/test_server.py::test_no_server_is_alive PASSED [ 82%] tests/test_server.py::test_with_server_is_alive PASSED [ 82%] tests/test_server.py::test_raise_if_dead_no_server_raises PASSED [ 82%] tests/test_server.py::test_raise_if_dead_does_not_raise_if_alive PASSED [ 82%] tests/test_server.py::test_on_init PASSED [ 83%] tests/test_server.py::test_socket_name_factory PASSED [ 83%] tests/test_server.py::test_socket_name_precedence PASSED [ 83%] tests/test_server.py::test_server_context_manager PASSED [ 83%] tests/test_server.py::test_new_session_start_directory[none_value] PASSED [ 83%] tests/test_server.py::test_new_session_start_directory[empty_string] PASSED [ 83%] tests/test_server.py::test_new_session_start_directory[user_path] PASSED [ 84%] tests/test_server.py::test_new_session_start_directory[relative_path] PASSED [ 84%] tests/test_server.py::test_new_session_start_directory_pathlib PASSED [ 84%] tests/test_server.py::test_tmux_bin_default PASSED [ 84%] tests/test_server.py::test_tmux_bin_custom_path PASSED [ 84%] tests/test_server.py::test_tmux_bin_invalid_path FAILED [ 84%] tests/test_server.py::test_tmux_bin_invalid_path_raise_if_dead FAILED [ 84%] tests/test_session.py::test_has_session PASSED [ 85%] tests/test_session.py::test_select_window PASSED [ 85%] tests/test_session.py::test_select_window_returns_Window PASSED [ 85%] tests/test_session.py::test_active_window PASSED [ 85%] tests/test_session.py::test_active_pane PASSED [ 85%] tests/test_session.py::test_session_rename PASSED [ 85%] tests/test_session.py::test_new_session PASSED [ 86%] tests/test_session.py::test_show_options PASSED [ 86%] tests/test_session.py::test_set_show_options_single PASSED [ 86%] tests/test_session.py::test_set_show_option PASSED [ 86%] tests/test_session.py::test_empty_session_option_returns_None PASSED [ 86%] tests/test_session.py::test_show_option_unknown PASSED [ 86%] tests/test_session.py::test_show_option_ambiguous PASSED [ 87%] tests/test_session.py::test_set_option_ambiguous PASSED [ 87%] tests/test_session.py::test_set_option_invalid PASSED [ 87%] tests/test_session.py::test_show_environment PASSED [ 87%] tests/test_session.py::test_set_show_environment_single PASSED [ 87%] tests/test_session.py::test_show_environment_not_set PASSED [ 87%] tests/test_session.py::test_remove_environment PASSED [ 88%] tests/test_session.py::test_unset_environment PASSED [ 88%] tests/test_session.py::test_periods_raise_bad_session_name[period_in_name] PASSED [ 88%] tests/test_session.py::test_periods_raise_bad_session_name[colon_in_name] PASSED [ 88%] tests/test_session.py::test_periods_raise_bad_session_name[valid_name] PASSED [ 88%] tests/test_session.py::test_cmd_inserts_session_id PASSED [ 88%] tests/test_session.py::test_new_window_with_environment[single_env_var] PASSED [ 88%] tests/test_session.py::test_new_window_with_environment[multiple_env_vars] PASSED [ 89%] tests/test_session.py::test_session_new_window_with_direction PASSED [ 89%] tests/test_session.py::test_session_context_manager PASSED [ 89%] tests/test_session.py::test_new_window_start_directory[none_value] PASSED [ 89%] tests/test_session.py::test_new_window_start_directory[empty_string] PASSED [ 89%] tests/test_session.py::test_new_window_start_directory[user_path] PASSED [ 89%] tests/test_session.py::test_new_window_start_directory[relative_path] PASSED [ 90%] tests/test_session.py::test_new_window_start_directory_pathlib PASSED [ 90%] tests/test_session.py::test_session_attach_does_not_fail_if_session_killed_during_attach[session_killed_during_attach_should_not_raise] PASSED [ 90%] tests/test_tmuxobject.py::test_find_where PASSED [ 90%] tests/test_tmuxobject.py::test_find_where_None PASSED [ 90%] tests/test_tmuxobject.py::test_find_where_multiple_infos PASSED [ 90%] tests/test_tmuxobject.py::test_where PASSED [ 91%] tests/test_tmuxobject.py::test_filter PASSED [ 91%] tests/test_version.py::test_version[simple_version] PASSED [ 91%] tests/test_version.py::test_version[minor_version] PASSED [ 91%] tests/test_version.py::test_version[patch_version] PASSED [ 91%] tests/test_version.py::test_version[beta_version] PASSED [ 91%] tests/test_version.py::test_version[beta_with_number] PASSED [ 92%] tests/test_version.py::test_version[beta_with_os] PASSED [ 92%] tests/test_version.py::test_version[next_version] PASSED [ 92%] tests/test_version.py::test_version[next_with_number] PASSED [ 92%] tests/test_version.py::test_version_compare[equal_simple] PASSED [ 92%] tests/test_version.py::test_version_compare[equal_with_minor] PASSED [ 92%] tests/test_version.py::test_version_compare[equal_with_patch] PASSED [ 92%] tests/test_version.py::test_version_compare[greater_than_alpha] PASSED [ 93%] tests/test_version.py::test_version_compare[greater_than_beta] PASSED [ 93%] tests/test_version.py::test_version_compare[less_than_patch] PASSED [ 93%] tests/test_version.py::test_version_compare[less_than_openbsd] PASSED [ 93%] tests/test_version.py::test_version_compare[less_than_equal_raises] PASSED [ 93%] tests/test_version.py::test_version_compare[beta_to_rc_compare] PASSED [ 93%] tests/test_window.py::test_select_window PASSED [ 94%] tests/test_window.py::test_fresh_window_data PASSED [ 94%] tests/test_window.py::test_newest_pane_data PASSED [ 94%] tests/test_window.py::test_active_pane PASSED [ 94%] tests/test_window.py::test_split PASSED [ 94%] tests/test_window.py::test_split_shell PASSED [ 94%] tests/test_window.py::test_split_horizontal PASSED [ 95%] tests/test_window.py::test_split_size PASSED [ 95%] tests/test_window.py::test_window_rename[rename_with_spaces] PASSED [ 95%] tests/test_window.py::test_window_rename[rename_with_escapes] PASSED [ 95%] tests/test_window.py::test_kill_window PASSED [ 95%] tests/test_window.py::test_show_window_options PASSED [ 95%] tests/test_window.py::test_set_window_and_show_window_options PASSED [ 96%] tests/test_window.py::test_set_and_show_window_options PASSED [ 96%] tests/test_window.py::test_empty_window_option_returns_None PASSED [ 96%] tests/test_window.py::test_show_window_option PASSED [ 96%] tests/test_window.py::test_show_window_option_unknown PASSED [ 96%] tests/test_window.py::test_show_window_option_ambiguous PASSED [ 96%] tests/test_window.py::test_set_window_option_ambiguous PASSED [ 96%] tests/test_window.py::test_set_window_option_invalid PASSED [ 97%] tests/test_window.py::test_move_window PASSED [ 97%] tests/test_window.py::test_move_window_to_other_session PASSED [ 97%] tests/test_window.py::test_select_layout_accepts_no_arg PASSED [ 97%] tests/test_window.py::test_empty_window_name PASSED [ 97%] tests/test_window.py::test_split_with_environment[single_env_var] PASSED [ 97%] tests/test_window.py::test_split_with_environment[multiple_env_vars] PASSED [ 98%] tests/test_window.py::test_split_window_zoom PASSED [ 98%] tests/test_window.py::test_resize PASSED [ 98%] tests/test_window.py::test_new_window_with_direction PASSED [ 98%] tests/test_window.py::test_window_context_manager PASSED [ 98%] tests/test_window.py::test_split_start_directory[none_value] PASSED [ 98%] tests/test_window.py::test_split_start_directory[empty_string] PASSED [ 99%] tests/test_window.py::test_split_start_directory[user_path] PASSED [ 99%] tests/test_window.py::test_split_start_directory[relative_path] PASSED [ 99%] tests/test_window.py::test_split_start_directory_pathlib PASSED [ 99%] tests/test_window.py::test_deprecated_window_methods_emit_warning[set_window_option] PASSED [ 99%] tests/test_window.py::test_deprecated_window_methods_emit_warning[show_window_options] PASSED [ 99%] tests/test_window.py::test_deprecated_window_methods_emit_warning[show_window_option] PASSED [100%] =================================== FAILURES =================================== ______________________ test_set_title_special_characters _______________________ session = Session($1 libtmux_4er2z5n8) def test_set_title_special_characters(session: Session) -> None: """Test Pane.set_title() with spaces and unicode.""" pane = session.active_window.active_pane assert pane is not None pane.set_title("my pane title") assert pane.pane_title == "my pane title" pane.set_title("my π pane") > assert pane.pane_title == "my π pane" E AssertionError: assert '@arch-nspawn-4047143:/build/python-libtmux/src/libtmux-0.55.0' == 'my π pane' E E - my π pane E + @arch-nspawn-4047143:/build/python-libtmux/src/libtmux-0.55.0 tests/test_pane.py:325: AssertionError __________________________ test_tmux_bin_invalid_path __________________________ def test_tmux_bin_invalid_path() -> None: """Invalid tmux_bin raises TmuxCommandNotFound.""" from libtmux import exc s = Server(tmux_bin="/nonexistent/tmux") > with pytest.raises(exc.TmuxCommandNotFound): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ E Failed: DID NOT RAISE tests/test_server.py:450: Failed ___________________ test_tmux_bin_invalid_path_raise_if_dead ___________________ def test_tmux_bin_invalid_path_raise_if_dead() -> None: """Invalid tmux_bin raises TmuxCommandNotFound in raise_if_dead().""" from libtmux import exc s = Server(tmux_bin="/nonexistent/tmux") with pytest.raises(exc.TmuxCommandNotFound): > s.raise_if_dead() tests/test_server.py:460: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ test_dir/usr/lib/python3.14/site-packages/libtmux/server.py:249: in raise_if_dead subprocess.check_call([resolved, *cmd_args]) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ popenargs = (['/nonexistent/tmux', 'list-sessions'],), kwargs = {} retcode = 127, cmd = ['/nonexistent/tmux', 'list-sessions'] def check_call(*popenargs, **kwargs): """Run command with arguments. Wait for command to complete. If the exit code was zero then return, otherwise raise CalledProcessError. The CalledProcessError object will have the return code in the returncode attribute. The arguments are the same as for the call function. Example: check_call(["ls", "-l"]) """ retcode = call(*popenargs, **kwargs) if retcode: cmd = kwargs.get("args") if cmd is None: cmd = popenargs[0] > raise CalledProcessError(retcode, cmd) E subprocess.CalledProcessError: Command '['/nonexistent/tmux', 'list-sessions']' returned non-zero exit status 127. /usr/lib/python3.14/subprocess.py:419: CalledProcessError =========================== short test summary info ============================ FAILED tests/test_pane.py::test_set_title_special_characters - AssertionError: assert '@arch-nspawn-4047143:/build/python-libtmux/src/libtmux-0.55.0' == 'my π pane' - my π pane + @arch-nspawn-4047143:/build/python-libtmux/src/libtmux-0.55.0 FAILED tests/test_server.py::test_tmux_bin_invalid_path - Failed: DID NOT RAISE FAILED tests/test_server.py::test_tmux_bin_invalid_path_raise_if_dead - subprocess.CalledProcessError: Command '['/nonexistent/tmux', 'list-sessions']' returned non-zero exit status 127. ====== 3 failed, 621 passed, 1 skipped, 2 deselected in 209.43s (0:03:29) ====== ==> ERROR: A failure occurred in check().  Aborting... [!p]104\[?7h]3008;end=8811d8ef1e22448bacce1bd0b0ecf993\==> ERROR: Build failed, check /var/lib/archbuild/extra-riscv64/felix-0/build [?25h[?25h[?25hreceiving incremental file list python-libtmux-0.55.0-1-riscv64-build.log python-libtmux-0.55.0-1-riscv64-check.log sent 62 bytes received 7,623 bytes 5,123.33 bytes/sec total size is 58,380 speedup is 7.60