aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSharlatan Hellseher <sharlatanus@gmail.com>2024-11-16 19:58:29 +0000
committerSharlatan Hellseher <sharlatanus@gmail.com>2024-12-13 20:19:10 +0000
commit3daf5b0dcf0456909141f0dd18c7ae5ca6ded49d (patch)
treeeb45889c28392d110175429677df9d1a6f4443c8
parent8d5f2d764711be09b23edaf7186e5c130bfa15c5 (diff)
downloadguix-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.scm72
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