1
0
mirror of https://git.savannah.gnu.org/git/guix.git synced 2026-04-06 21:20:33 +02:00

gnu: python-dbusmock: Update to 0.37.2.

* gnu/packages/python-xyz.scm
(python-dbusmock-check-phase): New variable, to reduce redundancy;
(python-dbusmock): Update to 0.37.2.
[source]: Switch to git-fetch.
[build-system]: Switch to pyproject-build-system.
[arguments]: Migrate them to pyproject-build-system.
<#:phases>: In phase 'patch-path, remove unecessary substitution. Use
python-dbusmock-check-phase.
[native-inputs]: Add python-setuptools.
(python-dbusmock-minimal)[source, arguments, build-system, inputs]:
Adapt fields to keep the same derivation and avoid rebuilds.

Change-Id: I6db0afffc74388fe19025457d7699993e2218666
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
Signed-off-by: Rutherther <rutherther@ditigal.xyz>
This commit is contained in:
Nicolas Graves
2025-12-25 14:54:50 +01:00
committed by Rutherther
parent 33692180e3
commit bca7df248f

View File

@@ -29217,9 +29217,73 @@ Its algorithms are based on the kakasi library, which is written in C.")
implementation of the D-Bus protocol.")
(license license:expat)))
(define python-dbusmock-check-phase
#~(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(match (primitive-fork)
(0 ;child process
(execlp "pytest" "pytest" "-vv"))
(pytest-pid
(let loop ()
;; Reap child processes; otherwise, python-dbusmock
;; would waste time polling for the dbus processes
;; it spawns to be reaped, in vain.
(match (waitpid WAIT_ANY)
((pid . status)
(if (= pid pytest-pid)
(unless (zero? status)
(error "`pytest' exited with status"
status))
(loop))))))))))
(define-public python-dbusmock
(package
(name "python-dbusmock")
(version "0.37.2")
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/martinpitt/python-dbusmock")
(commit version)))
(file-name (git-file-name name version))
(sha256
(base32 "1a70gi3qgjblg9z9id9z0fy3vlhb1cqbmmny14bqhv79qqskspj3"))))
(build-system pyproject-build-system)
(arguments
(list
#:modules `((guix build pyproject-build-system)
(guix build utils)
(ice-9 match))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "tests/test_api.py"
(("/usr/bin/python3")
(which "python3")))
(substitute* "dbusmock/testcase.py"
(("\"dbus-daemon\"")
(object->string
(search-input-file inputs "/bin/dbus-daemon"))))))
(replace 'check #$python-dbusmock-check-phase))))
(native-inputs (list python-pytest python-setuptools upower which))
(inputs (list dbus))
(propagated-inputs (list python-dbus-python python-pygobject))
(home-page "https://github.com/martinpitt/python-dbusmock")
(synopsis "Python library for mock D-Bus objects")
(description
"python-dbusmock allows for the easy creation of mock objects on D-Bus.
This is useful for writing tests for software which talks to D-Bus services
such as upower, systemd, logind, gnome-session or others, and it is hard (or
impossible without root privileges) to set the state of the real services to
what you expect in your tests.")
(license license:lgpl3+)))
(define-public python-dbusmock-minimal
(package
(inherit python-dbusmock)
(name "python-dbusmock-minimal")
(version "0.30.0")
(source
(origin
@@ -29230,65 +29294,31 @@ implementation of the D-Bus protocol.")
"1hanz6x76jq66ypdirga5h15zjs67kwysl6rmsf0i22dbdqrxdfv"))))
(build-system python-build-system)
(arguments
(list #:modules `((guix build python-build-system)
(guix build utils)
(ice-9 match))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "tests/test_api.py"
(("/usr/bin/python3")
(which "python3")))
(substitute* "tests/test_code.py"
(("/bin/bash")
(which "bash")))
(substitute* "dbusmock/testcase.py"
(("'dbus-daemon'")
(object->string
(search-input-file inputs "/bin/dbus-daemon"))))))
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(match (primitive-fork)
(0 ;child process
(execlp "pytest" "pytest" "-vv"))
(pytest-pid
(let loop ()
;; Reap child processes; otherwise, python-dbusmock
;; would waste time polling for the dbus processes
;; it spawns to be reaped, in vain.
(match (waitpid WAIT_ANY)
((pid . status)
(if (= pid pytest-pid)
(unless (zero? status)
(error "`pytest' exited with status"
status))
(loop)))))))))))))
(native-inputs
(list dbus python-pytest upower which))
(list
#:tests? #f
#:modules `((guix build python-build-system)
(guix build utils)
(ice-9 match))
#:phases
#~(modify-phases %standard-phases
(add-after 'unpack 'patch-paths
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "tests/test_api.py"
(("/usr/bin/python3")
(which "python3")))
(substitute* "tests/test_code.py"
(("/bin/bash")
(which "bash")))
(substitute* "dbusmock/testcase.py"
(("'dbus-daemon'")
(object->string
(search-input-file inputs "/bin/dbus-daemon"))))))
(replace 'check #$python-dbusmock-check-phase))))
(native-inputs (list which))
(inputs
(list dbus))
(propagated-inputs
(list python-dbus-python python-pygobject))
(home-page "https://github.com/martinpitt/python-dbusmock")
(synopsis "Python library for mock D-Bus objects")
(description "python-dbusmock allows for the easy creation of mock objects on
D-Bus. This is useful for writing tests for software which talks to D-Bus
services such as upower, systemd, logind, gnome-session or others, and it is
hard (or impossible without root privileges) to set the state of the real
services to what you expect in your tests.")
(license license:lgpl3+)))
(define-public python-dbusmock-minimal
(package
(inherit python-dbusmock)
(name "python-dbusmock-minimal")
(arguments
(substitute-keyword-arguments (package-arguments python-dbusmock)
((#:tests? _ #t) #f)))
(native-inputs (list which))
(properties '((hidden? . #t)))))
(define-public python-jsonplus