Subject: [bug#40543] [PATCH v2 5/5] gnu: virt-manager: Work towards enabling some tests.

From: Marius Bakke <[email-masked]>
Date: Wed, 15 Apr 2020 20:46:17 +0200

Christopher Baines <[email-masked]> writes:

> * gnu/packages/virtualization.scm (virt-manager)[arguments]: Set #:test-target
> to "test_ui", replace the 'check phase.
> [native-inputs]: Add some inputs required for running tests.
> ---
>  gnu/packages/virtualization.scm | 25 +++++++++++++++++++++----
>  1 file changed, 21 insertions(+), 4 deletions(-)
>
> diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm
> index be17ec15f0..c8840f345a 100644
> --- a/gnu/packages/virtualization.scm
> +++ b/gnu/packages/virtualization.scm
> @@ -602,9 +602,10 @@ virtualization library.")
>      (build-system python-build-system)
>      (arguments
>       `(#:use-setuptools? #f          ; uses custom distutils 'install' command
> -       ;; Some of the tests seem to require network access to install virtual
> -       ;; machines.
> -       #:tests? #f
> +       #:test-target "test_ui"
> +       #:tests? #f                      ; TODO The tests currently fail
> +                                        ; RuntimeError: Loop condition wasn't
> +                                        ; met
>         #:imported-modules ((guix build glib-or-gtk-build-system)
>                             ,@%python-build-system-modules)
>         #:modules ((ice-9 match)
> @@ -651,6 +652,16 @@ virtualization library.")
>                                 ,(filter identity paths))))
>                           bin-files))
>               #t))
> +         (replace 'check
> +           (lambda* (#:key tests? #:allow-other-keys)
> +             (when tests?
> +               (setenv "HOME" "/tmp")
> +               (system "Xvfb :1 &")
> +               (setenv "DISPLAY" ":1")
> +               ;; Dogtail requires that Assistive Technology support be enabled
> +               (setenv "GTK_MODULES" "gail:atk-bridge")
> +               (invoke "dbus-run-session" "--" "python" "setup.py" "test_ui"))
> +             #t))
>           (add-after 'install 'glib-or-gtk-compile-schemas
>             (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
>           (add-after 'install 'glib-or-gtk-wrap
> @@ -679,7 +690,13 @@ virtualization library.")
>         ("gobject-introspection" ,gobject-introspection)
>         ("gtk+" ,gtk+ "bin")             ; gtk-update-icon-cache
>         ("perl" ,perl)                   ; pod2man
> -       ("intltool" ,intltool)))
> +       ("intltool" ,intltool)
> +       ;; The following are required for running the tests
> +       ("python-dogtail" ,python-dogtail)
> +       ("xvfb" ,xorg-server)
> +       ("dbus" ,dbus)
> +       ("at-spi2-core" ,at-spi2-core)
> +       ("gsettings-desktop-schemas" ,gsettings-desktop-schemas)))

Perhaps we should comment these inputs for now so that they won't
needlessly rebuild this package?

Also, this should use 'xorg-server-for-tests'.

Otherwise LGTM.