diff options
author | Sharlatan Hellseher <sharlatanus@gmail.com> | 2024-11-16 19:58:29 +0000 |
---|---|---|
committer | Sharlatan Hellseher <sharlatanus@gmail.com> | 2024-12-13 20:19:10 +0000 |
commit | 3daf5b0dcf0456909141f0dd18c7ae5ca6ded49d (patch) | |
tree | eb45889c28392d110175429677df9d1a6f4443c8 | |
parent | 8d5f2d764711be09b23edaf7186e5c130bfa15c5 (diff) | |
download | guix-3daf5b0dcf0456909141f0dd18c7ae5ca6ded49d.tar.gz guix-3daf5b0dcf0456909141f0dd18c7ae5ca6ded49d.zip |
gnu: python-pexpect: Improve package style.
* gnu/packages/python-xyz.scm (python-pexpect): Use G-expression,
improve style.
[build-system]: Swap to pyproject-build-system.
[arguments]<test-flags>: Move test exclusion logic here from
'prepare-tests phase.
[native-inputs]: Remove python-nose; add python-setuptools and
python-wheel.
Change-Id: I16da2bfbeabf21b02acf93f7fed765f262a56596
-rw-r--r-- | gnu/packages/python-xyz.scm | 72 |
1 files changed, 42 insertions, 30 deletions
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index 9af5543036..e9a4c2e153 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -11833,43 +11833,55 @@ wraps Python's standard library threading and multiprocessing objects.") (uri (pypi-uri "pexpect" version)) (sha256 (base32 "032cg337h8awydgypz6f4wx848lw8dyrj4zy988x0lyib4ws8rgw")))) - (build-system python-build-system) + (build-system pyproject-build-system) (arguments - `(#:phases - (modify-phases %standard-phases - (add-before 'check 'prepare-tests - (lambda _ - (substitute* (find-files "tests") - (("/bin/ls") (which "ls")) - (("/bin/echo") (which "echo")) - (("/bin/which") (which "which")) - ;; Many tests try to use the /bin directory which - ;; is not present in the build environment. - ;; Use one that's non-empty and unlikely to change. - (("/bin'") "/dev'") - ;; Disable failing test. See upstream bug report - ;; https://github.com/pexpect/pexpect/issues/568 - (("def test_bash") "def _test_bash")) - ;; XXX: Socket connection test gets "Connection reset by peer". - ;; Why does it not work? Delete for now. - (delete-file "tests/test_socket.py") - #t)) - (replace 'check (lambda _ (invoke "nosetests" "-v")))))) - (native-inputs - `(("python-nose" ,python-nose) - ("python-pytest" ,python-pytest) - ("man-db" ,man-db) - ("which" ,which) - ("bash-full" ,bash))) ;full Bash for 'test_replwrap.py' + (list + #:test-flags + #~(list "-k" (string-join + (list + ;; Disable failing test, see + ;; <https://github.com/pexpect/pexpect/issues/568>. + "not test_bash" + ;; Fails with attempt to find OpenSSL. + "test_large_stdout_stream" + ;; Tests fail while trying to find + ;; tmp-pexpect-xxxxxxxxxxxx directories. + "test_run_uses_env" + "test_run_uses_env_path" + "test_run_uses_env_path_over_path" + "test_spawn_uses_env" + ;; Fails with assertion error: assert 0 == 500 + "test_before_across_chunks") + " and not ")) + #:phases + #~(modify-phases %standard-phases + (add-before 'check 'prepare-tests + (lambda _ + (substitute* (find-files "tests") + (("/bin/bash") (which "bash")) + (("/bin/echo") (which "echo")) + (("/bin/ls") (which "ls")) + (("/bin/which") (which "which")) + ;; Many tests try to use the /bin directory which is not + ;; present in the build environment. Use one that's non-empty + ;; and unlikely to change. + (("/bin'") "/dev'"))))))) + (native-inputs + (list bash ;full Bash for 'test_replwrap.py' + man-db + python-pytest + python-setuptools + python-wheel + which)) (propagated-inputs (list python-ptyprocess)) (home-page "https://pexpect.readthedocs.org/") (synopsis "Controlling interactive console applications") (description "Pexpect is a pure Python module for spawning child applications; -controlling them; and responding to expected patterns in their output. -Pexpect works like Don Libes’ Expect. Pexpect allows your script to spawn a -child application and control it as if a human were typing commands.") +controlling them; and responding to expected patterns in their output. Pexpect +works like Don Libes’ Expect. Pexpect allows your script to spawn a child +application and control it as if a human were typing commands.") (license license:isc))) (define-public python-sexpdata |