components/python/pexpect/Makefile
@@ -19,14 +19,13 @@ include ../../../make-rules/shared-macros.mk COMPONENT_NAME = pexpect HUMAN_VERSION = 4.8.0 COMPONENT_REVISION = 2 HUMAN_VERSION = 4.9 COMPONENT_SUMMARY = pexpect - Pexpect allows easy control of interactive console applications. COMPONENT_PROJECT_URL = https://pexpect.readthedocs.io/ COMPONENT_ARCHIVE_URL = \ https://github.com/pexpect/pexpect/archive/refs/tags/$(HUMAN_VERSION).tar.gz COMPONENT_ARCHIVE_HASH = \ sha256:f2ea54a12cc893636a60421e8da0a36c40caad7825eb674697f1e25f5f91245e sha256:13756b834dba0adf7603be77d943cc427011983ecd7c58b59b9bf122a1063e40 COMPONENT_LICENSE = ISC COMPONENT_LICENSE_FILE = LICENSE @@ -43,5 +42,6 @@ PYTHON_REQUIRED_PACKAGES += runtime/python TEST_REQUIRED_PACKAGES.python += library/python/coverage TEST_REQUIRED_PACKAGES.python += library/python/coveralls TEST_REQUIRED_PACKAGES.python += library/python/ptyprocess TEST_REQUIRED_PACKAGES.python += library/python/pytest TEST_REQUIRED_PACKAGES.python += library/python/pytest-cov components/python/pexpect/history
@@ -1,4 +1,4 @@ library/python/pexpect-27@4.6.0,5.11-2020.0.1.4 library/python/pexpect-34@4.6.0,5.11-2020.0.1.1 library/python/pexpect-35@4.8.0,5.11-2020.0.1.1 noincorporate library/python/pexpect-37@4.8.0,5.11-2023.0.0.2 noincorporate library/python/pexpect-35@4.8.0,5.11-2020.0.1.2 library/python/pexpect-37@4.8.0,5.11-2023.0.0.3 components/python/pexpect/manifests/sample-manifest.p5m
@@ -23,15 +23,17 @@ license $(COMPONENT_LICENSE_FILE) license='$(COMPONENT_LICENSE)' file path=usr/lib/python$(PYVER)/vendor-packages/pexpect-$(HUMAN_VERSION)-py$(PYVER).egg-info/PKG-INFO file path=usr/lib/python$(PYVER)/vendor-packages/pexpect-$(HUMAN_VERSION)-py$(PYVER).egg-info/SOURCES.txt file path=usr/lib/python$(PYVER)/vendor-packages/pexpect-$(HUMAN_VERSION)-py$(PYVER).egg-info/dependency_links.txt file path=usr/lib/python$(PYVER)/vendor-packages/pexpect-$(HUMAN_VERSION)-py$(PYVER).egg-info/requires.txt file path=usr/lib/python$(PYVER)/vendor-packages/pexpect-$(HUMAN_VERSION)-py$(PYVER).egg-info/top_level.txt file path=usr/lib/python$(PYVER)/vendor-packages/pexpect-$(HUMAN_VERSION).0-py$(PYVER).egg-info/PKG-INFO file path=usr/lib/python$(PYVER)/vendor-packages/pexpect-$(HUMAN_VERSION).0-py$(PYVER).egg-info/SOURCES.txt file path=usr/lib/python$(PYVER)/vendor-packages/pexpect-$(HUMAN_VERSION).0-py$(PYVER).egg-info/dependency_links.txt file path=usr/lib/python$(PYVER)/vendor-packages/pexpect-$(HUMAN_VERSION).0-py$(PYVER).egg-info/requires.txt file path=usr/lib/python$(PYVER)/vendor-packages/pexpect-$(HUMAN_VERSION).0-py$(PYVER).egg-info/top_level.txt file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/ANSI.py file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/FSM.py file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/__init__.py file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/_async.py file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/_async_pre_await.py file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/_async_w_await.py file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/bashrc.sh file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/exceptions.py file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/expect.py @@ -42,6 +44,7 @@ file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/replwrap.py file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/run.py file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/screen.py file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/socket_pexpect.py file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/spawnbase.py file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/utils.py components/python/pexpect/patches/01-test-gnu-nl.patch
File was deleted components/python/pexpect/patches/01-test-nl.patch
New file @@ -0,0 +1,13 @@ https://github.com/pexpect/pexpect/pull/778 --- pexpect-4.9/tests/test_expect.py.orig +++ pexpect-4.9/tests/test_expect.py @@ -485,7 +485,7 @@ def test_before_across_chunks(self): # https://github.com/pexpect/pexpect/issues/478 child = pexpect.spawn( - '''/bin/sh -c "openssl rand -base64 {} 2>/dev/null | head -500 | nl -n rz -w 5 2>&1 ; echo 'PATTERN!!!'"'''.format(1024 * 1024 * 2), + '''/bin/sh -c "openssl rand -base64 {} 2>/dev/null | head -500 | nl -nrz -w5 2>&1 ; echo 'PATTERN!!!'"'''.format(1024 * 1024 * 2), searchwindowsize=128 ) child.expect(['PATTERN']) components/python/pexpect/patches/02-test-cat-hang.patch
File was deleted components/python/pexpect/patches/03-test-test_large_stdout_stream.patch
@@ -1,7 +1,7 @@ https://github.com/pexpect/pexpect/issues/766 --- pexpect-4.8.0/tests/test_performance.py.orig +++ pexpect-4.8.0/tests/test_performance.py --- pexpect-4.9/tests/test_performance.py.orig +++ pexpect-4.9/tests/test_performance.py @@ -103,7 +103,7 @@ print("100000 calls to faster_range:", (time.time() - start_time)) components/python/pexpect/patches/04-test-skip-failing-bash.patch
@@ -1,6 +1,6 @@ --- pexpect-4.8.0/tests/test_replwrap.py.orig +++ pexpect-4.8.0/tests/test_replwrap.py @@ -6,6 +6,8 @@ --- pexpect-4.9/tests/test_replwrap.py.orig +++ pexpect-4.9/tests/test_replwrap.py @@ -7,6 +7,8 @@ import pexpect from pexpect import replwrap @@ -9,17 +9,17 @@ skip_pypy = "This test fails on PyPy because of REPL differences" @@ -22,6 +24,7 @@ @@ -23,6 +25,7 @@ os.putenv('PS1', self.save_ps1) os.putenv('PS2', self.save_ps2) + @pytest.mark.skip(reason="always fails: https://github.com/pexpect/pexpect/issues/568") def test_bash(self): bash = replwrap.bash() res = bash.run_command("alias") @@ -40,6 +43,7 @@ res = bash.run_command("alias xyzzy=true; alias") @@ -41,6 +44,7 @@ res = bash.run_command('man sleep', timeout=5) assert 'SLEEP' in res, res assert 'SLEEP' in res.upper(), res + @pytest.mark.skip(reason="always fails: https://github.com/pexpect/pexpect/issues/568") def test_bash_env(self): components/python/pexpect/patches/05-test-skip-failing-tcgetattr.patch
@@ -1,6 +1,6 @@ --- pexpect-4.8.0/tests/test_replwrap.py.orig +++ pexpect-4.8.0/tests/test_replwrap.py @@ -88,6 +88,7 @@ --- pexpect-4.9/tests/test_replwrap.py.orig +++ pexpect-4.9/tests/test_replwrap.py @@ -90,6 +90,7 @@ res = bash.run_command("echo '1 2\n3 4'") self.assertEqual(res.strip().splitlines(), ['1 2', '3 4']) components/python/pexpect/patches/06-pytest-capturelog.patch
File was deleted components/python/pexpect/pexpect-PYVER.p5m
@@ -23,15 +23,17 @@ license $(COMPONENT_LICENSE_FILE) license='$(COMPONENT_LICENSE)' file path=usr/lib/python$(PYVER)/vendor-packages/pexpect-$(HUMAN_VERSION)-py$(PYVER).egg-info/PKG-INFO file path=usr/lib/python$(PYVER)/vendor-packages/pexpect-$(HUMAN_VERSION)-py$(PYVER).egg-info/SOURCES.txt file path=usr/lib/python$(PYVER)/vendor-packages/pexpect-$(HUMAN_VERSION)-py$(PYVER).egg-info/dependency_links.txt file path=usr/lib/python$(PYVER)/vendor-packages/pexpect-$(HUMAN_VERSION)-py$(PYVER).egg-info/requires.txt file path=usr/lib/python$(PYVER)/vendor-packages/pexpect-$(HUMAN_VERSION)-py$(PYVER).egg-info/top_level.txt file path=usr/lib/python$(PYVER)/vendor-packages/pexpect-$(HUMAN_VERSION).0-py$(PYVER).egg-info/PKG-INFO file path=usr/lib/python$(PYVER)/vendor-packages/pexpect-$(HUMAN_VERSION).0-py$(PYVER).egg-info/SOURCES.txt file path=usr/lib/python$(PYVER)/vendor-packages/pexpect-$(HUMAN_VERSION).0-py$(PYVER).egg-info/dependency_links.txt file path=usr/lib/python$(PYVER)/vendor-packages/pexpect-$(HUMAN_VERSION).0-py$(PYVER).egg-info/requires.txt file path=usr/lib/python$(PYVER)/vendor-packages/pexpect-$(HUMAN_VERSION).0-py$(PYVER).egg-info/top_level.txt file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/ANSI.py file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/FSM.py file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/__init__.py file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/_async.py file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/_async_pre_await.py file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/_async_w_await.py file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/bashrc.sh file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/exceptions.py file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/expect.py @@ -42,6 +44,7 @@ file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/replwrap.py file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/run.py file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/screen.py file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/socket_pexpect.py file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/spawnbase.py file path=usr/lib/python$(PYVER)/vendor-packages/pexpect/utils.py components/python/pexpect/python-integrate-project.conf
@@ -13,14 +13,14 @@ # Copyright 2023 Marcel Telka # %patch% 01-test-gnu-nl.patch %patch% 02-test-cat-hang.patch %patch% 01-test-nl.patch %patch% 03-test-test_large_stdout_stream.patch %patch% 04-test-skip-failing-bash.patch %patch% 05-test-skip-failing-tcgetattr.patch %patch% 06-pytest-capturelog.patch %hook-begin% # https://github.com/pexpect/pexpect/issues/781 VERSION=4.9 # https://github.com/pexpect/pexpect/issues/768 DOWNLOAD_URL='https://github.com/pexpect/pexpect/archive/refs/tags/$(HUMAN_VERSION).tar.gz' components/python/pexpect/test/results-all.master
@@ -3,7 +3,7 @@ cachedir: .pytest_cache rootdir: $(@D) configfile: setup.cfg collecting ... collected 234 items collecting ... collected 257 items tests/test_FSM.py::FSMTestCase::test_run_fsm PASSED tests/test_ansi.py::ansiTestCase::test_decode_error PASSED @@ -47,6 +47,9 @@ tests/test_expect.py::ExpectTestCase::test_before_after_exact PASSED tests/test_expect.py::ExpectTestCase::test_before_after_timeout PASSED tests/test_expect.py::ExpectTestCase::test_buffer_interface PASSED tests/test_expect.py::ExpectTestCase::test_coerce_expect_re_enc_ascii PASSED tests/test_expect.py::ExpectTestCase::test_coerce_expect_re_enc_none PASSED tests/test_expect.py::ExpectTestCase::test_coerce_expect_re_enc_utf8 PASSED tests/test_expect.py::ExpectTestCase::test_expect PASSED tests/test_expect.py::ExpectTestCase::test_expect_basic PASSED tests/test_expect.py::ExpectTestCase::test_expect_echo PASSED @@ -60,6 +63,8 @@ tests/test_expect.py::ExpectTestCase::test_expect_index_exact PASSED tests/test_expect.py::ExpectTestCase::test_expect_order PASSED tests/test_expect.py::ExpectTestCase::test_expect_order_exact PASSED tests/test_expect.py::ExpectTestCase::test_expect_regex_enc_none PASSED tests/test_expect.py::ExpectTestCase::test_expect_regex_enc_utf8 PASSED tests/test_expect.py::ExpectTestCase::test_expect_setecho_off SKIPPED tests/test_expect.py::ExpectTestCase::test_expect_setecho_off_exact SKIPPED tests/test_expect.py::ExpectTestCase::test_expect_timeout PASSED @@ -149,6 +154,9 @@ tests/test_pxssh.py::PxsshTestCase::test_failed_custom_ssh_cmd_debug PASSED tests/test_pxssh.py::PxsshTestCase::test_failed_set_unique_prompt PASSED tests/test_pxssh.py::PxsshTestCase::test_fake_ssh PASSED tests/test_pxssh.py::PxsshTestCase::test_login_bash PASSED tests/test_pxssh.py::PxsshTestCase::test_login_tcsh PASSED tests/test_pxssh.py::PxsshTestCase::test_login_zsh PASSED tests/test_pxssh.py::PxsshTestCase::test_remote_ssh_tunnel_string PASSED tests/test_pxssh.py::PxsshTestCase::test_ssh_config_empty_user PASSED tests/test_pxssh.py::PxsshTestCase::test_ssh_config_no_user PASSED @@ -169,6 +177,7 @@ tests/test_replwrap.py::REPLWrapTestCase::test_no_change_prompt PASSED tests/test_replwrap.py::REPLWrapTestCase::test_pager_as_cat PASSED tests/test_replwrap.py::REPLWrapTestCase::test_python PASSED tests/test_replwrap.py::REPLWrapTestCase::test_zsh PASSED tests/test_repr.py::TestCaseMisc::test_str_before_spawn PASSED tests/test_repr.py::TestCaseMisc::test_str_spawn PASSED tests/test_repr.py::TestCaseMisc::test_str_spawnu PASSED @@ -204,15 +213,29 @@ tests/test_socket.py::ExpectTestCase::test_fd_isalive_poll PASSED tests/test_socket.py::ExpectTestCase::test_fd_isatty PASSED tests/test_socket.py::ExpectTestCase::test_fd_isatty_poll PASSED tests/test_socket.py::ExpectTestCase::test_fileobj PASSED tests/test_socket.py::ExpectTestCase::test_interrupt PASSED tests/test_socket.py::ExpectTestCase::test_maxread PASSED tests/test_socket.py::ExpectTestCase::test_multiple_interrupts PASSED tests/test_socket.py::ExpectTestCase::test_not_file_descriptor PASSED tests/test_socket.py::ExpectTestCase::test_not_int PASSED tests/test_socket.py::ExpectTestCase::test_socket PASSED tests/test_socket.py::ExpectTestCase::test_socket_with_write PASSED tests/test_socket.py::ExpectTestCase::test_timeout PASSED tests/test_socket_fd.py::ExpectTestCase::test_fd_isalive PASSED tests/test_socket_fd.py::ExpectTestCase::test_fd_isalive_poll PASSED tests/test_socket_fd.py::ExpectTestCase::test_fd_isatty PASSED tests/test_socket_fd.py::ExpectTestCase::test_fd_isatty_poll PASSED tests/test_socket_fd.py::ExpectTestCase::test_fileobj PASSED tests/test_socket_fd.py::ExpectTestCase::test_interrupt PASSED tests/test_socket_fd.py::ExpectTestCase::test_maxread PASSED tests/test_socket_fd.py::ExpectTestCase::test_multiple_interrupts PASSED tests/test_socket_fd.py::ExpectTestCase::test_not_file_descriptor PASSED tests/test_socket_fd.py::ExpectTestCase::test_not_int PASSED tests/test_socket_fd.py::ExpectTestCase::test_socket PASSED tests/test_socket_fd.py::ExpectTestCase::test_socket_with_write PASSED tests/test_socket_fd.py::ExpectTestCase::test_timeout PASSED tests/test_socket_pexpect.py::ExpectTestCase::test_maxread PASSED tests/test_socket_pexpect.py::ExpectTestCase::test_socket PASSED tests/test_socket_pexpect.py::ExpectTestCase::test_socket_isalive PASSED tests/test_socket_pexpect.py::ExpectTestCase::test_socket_isatty PASSED tests/test_timeout_pattern.py::Exp_TimeoutTestCase::test_correctStackTrace PASSED tests/test_timeout_pattern.py::Exp_TimeoutTestCase::test_exp_timeout_notThrown PASSED tests/test_timeout_pattern.py::Exp_TimeoutTestCase::test_matches_exp_timeout PASSED @@ -245,54 +268,5 @@ $(@D)/pexpect/ANSI.py:29: UserWarning: pexpect.screen and pexpect.ANSI are deprecated. We recommend using pyte to emulate a terminal screen: https://pypi.python.org/pypi/pyte from . import screen tests/test_async.py::AsyncTests::test_async_and_gc $(@D)/pexpect/_async.py:8: DeprecationWarning: "@coroutine" decorator is deprecated since Python 3.8, use "async def" instead def expect_async(expecter, timeout=None): tests/test_async.py::AsyncTests::test_async_and_gc $(@D)/pexpect/_async.py:31: DeprecationWarning: "@coroutine" decorator is deprecated since Python 3.8, use "async def" instead def repl_run_command_async(repl, cmdlines, timeout=-1): tests/test_expect.py::ExpectTestCase::test_bad_arg $(@D)/tests/test_expect.py:572: DeprecationWarning: Please use assertRaisesRegex instead. with self.assertRaisesRegexp(TypeError, '.*must be one of'): tests/test_expect.py::ExpectTestCase::test_bad_arg $(@D)/tests/test_expect.py:574: DeprecationWarning: Please use assertRaisesRegex instead. with self.assertRaisesRegexp(TypeError, '.*must be one of'): tests/test_expect.py::ExpectTestCase::test_bad_arg $(@D)/tests/test_expect.py:576: DeprecationWarning: Please use assertRaisesRegex instead. with self.assertRaisesRegexp(TypeError, '.*must be one of'): tests/test_expect.py::ExpectTestCase::test_bad_arg $(@D)/tests/test_expect.py:578: DeprecationWarning: Please use assertRaisesRegex instead. with self.assertRaisesRegexp(TypeError, '.*must be one of'): tests/test_misc.py::TestCaseMisc::test_bad_arguments_suggest_fdpsawn $(@D)/tests/test_misc.py:227: DeprecationWarning: Please use assertRaisesRegex instead. with self.assertRaisesRegexp(pexpect.ExceptionPexpect, tests/test_misc.py::TestCaseMisc::test_bad_child_pid $(@D)/tests/test_misc.py:217: DeprecationWarning: Please use assertRaisesRegex instead. with self.assertRaisesRegexp(pexpect.ExceptionPexpect, tests/test_popen_spawn.py::ExpectTestCase::test_bad_arg $(@D)/tests/test_popen_spawn.py:113: DeprecationWarning: Please use assertRaisesRegex instead. with self.assertRaisesRegexp(TypeError, '.*must be one of'): tests/test_popen_spawn.py::ExpectTestCase::test_bad_arg $(@D)/tests/test_popen_spawn.py:115: DeprecationWarning: Please use assertRaisesRegex instead. with self.assertRaisesRegexp(TypeError, '.*must be one of'): tests/test_popen_spawn.py::ExpectTestCase::test_bad_arg $(@D)/tests/test_popen_spawn.py:117: DeprecationWarning: Please use assertRaisesRegex instead. with self.assertRaisesRegexp(TypeError, '.*must be one of'): tests/test_popen_spawn.py::ExpectTestCase::test_bad_arg $(@D)/tests/test_popen_spawn.py:119: DeprecationWarning: Please use assertRaisesRegex instead. with self.assertRaisesRegexp(TypeError, '.*must be one of'): -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ======== 223 passed, 11 skipped, 13 warnings ======== ======== 246 passed, 11 skipped, 1 warning ========