summary refs log tree commit diff
path: root/pkgs/applications/graphics/gnome-photos
diff options
context:
space:
mode:
authorJan Tojnar <jtojnar@gmail.com>2019-08-23 03:16:28 +0200
committerJan Tojnar <jtojnar@gmail.com>2019-08-23 19:31:14 +0200
commitc6eb691fb8cd0616b85d1e6d91c650030f3250ac (patch)
tree14beaa589c0a52c0e4e423c4e170ea6eb736bc5b /pkgs/applications/graphics/gnome-photos
parentc241e9756bf80ca7f672925e2d83ec7746ee80af (diff)
downloadnixpkgs-c6eb691fb8cd0616b85d1e6d91c650030f3250ac.tar
nixpkgs-c6eb691fb8cd0616b85d1e6d91c650030f3250ac.tar.gz
nixpkgs-c6eb691fb8cd0616b85d1e6d91c650030f3250ac.tar.bz2
nixpkgs-c6eb691fb8cd0616b85d1e6d91c650030f3250ac.tar.lz
nixpkgs-c6eb691fb8cd0616b85d1e6d91c650030f3250ac.tar.xz
nixpkgs-c6eb691fb8cd0616b85d1e6d91c650030f3250ac.tar.zst
nixpkgs-c6eb691fb8cd0616b85d1e6d91c650030f3250ac.zip
gnome-photos: add installed tests
Diffstat (limited to 'pkgs/applications/graphics/gnome-photos')
-rw-r--r--pkgs/applications/graphics/gnome-photos/default.nix33
-rw-r--r--pkgs/applications/graphics/gnome-photos/installed-tests-path.patch23
2 files changed, 54 insertions, 2 deletions
diff --git a/pkgs/applications/graphics/gnome-photos/default.nix b/pkgs/applications/graphics/gnome-photos/default.nix
index e6072b1211d..f591dd5a60d 100644
--- a/pkgs/applications/graphics/gnome-photos/default.nix
+++ b/pkgs/applications/graphics/gnome-photos/default.nix
@@ -1,5 +1,6 @@
 { stdenv
 , fetchurl
+, at-spi2-core
 , babl
 , dbus
 , desktop-file-utils
@@ -13,6 +14,7 @@
 , glib
 , gnome-online-accounts
 , gnome3
+, gobject-introspection
 , grilo
 , grilo-plugins
 , gsettings-desktop-schemas
@@ -23,6 +25,7 @@
 , libxml2
 , meson
 , ninja
+, nixosTests
 , pkgconfig
 , python3
 , tracker
@@ -34,22 +37,32 @@ stdenv.mkDerivation rec {
   pname = "gnome-photos";
   version = "3.32.1";
 
+  outputs = [ "out" "installedTests" ];
+
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
     sha256 = "0nxa2jz1g73wypdsj19r4plf4hfkhs9mpl7gbhsiyqp1rkn84ahn";
   };
 
-  # doCheck = true;
+  patches = [
+    ./installed-tests-path.patch
+  ];
 
   nativeBuildInputs = [
     desktop-file-utils
     gettext
+    gobject-introspection # for setup hook
+    glib # for setup hook
     itstool
     libxml2
     meson
     ninja
     pkgconfig
-    python3
+    (python3.withPackages (pkgs: with pkgs; [
+      dogtail
+      pygobject3
+      pyatspi
+    ]))
     wrapGAppsHook
   ];
 
@@ -73,17 +86,33 @@ stdenv.mkDerivation rec {
     libgdata
     tracker
     tracker-miners # For 'org.freedesktop.Tracker.Miner.Files' GSettings schema
+
+    at-spi2-core # for tests
+  ];
+
+  mesonFlags = [
+    "-Dinstalled_tests=true"
+    "-Dinstalled_test_prefix=${placeholder "installedTests"}"
   ];
 
   postPatch = ''
     chmod +x meson_post_install.py
     patchShebangs meson_post_install.py
+    patchShebangs tests/basic.py
+  '';
+
+  postFixup = ''
+    wrapProgram "${placeholder "installedTests"}/libexec/installed-tests/gnome-photos/basic.py" "''${gappsWrapperArgs[@]}"
   '';
 
   passthru = {
     updateScript = gnome3.updateScript {
       packageName = pname;
     };
+
+    tests = {
+      installed-tests = nixosTests.gnome-photos;
+    };
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/applications/graphics/gnome-photos/installed-tests-path.patch b/pkgs/applications/graphics/gnome-photos/installed-tests-path.patch
new file mode 100644
index 00000000000..218108328dd
--- /dev/null
+++ b/pkgs/applications/graphics/gnome-photos/installed-tests-path.patch
@@ -0,0 +1,23 @@
+diff --git a/meson.build b/meson.build
+index dee932dc..f8851913 100644
+--- a/meson.build
++++ b/meson.build
+@@ -16,8 +16,8 @@
+ photos_docdir = join_paths(photos_datadir, 'doc', meson.project_name())
+ photos_libdir = join_paths(photos_prefix, get_option('libdir'), meson.project_name())
+ 
+-photos_installed_test_metadir = join_paths(photos_datadir, 'installed-tests', meson.project_name())
+-photos_installed_test_execdir = join_paths(photos_libexecdir, 'installed-tests', meson.project_name())
++photos_installed_test_metadir = join_paths(get_option('installed_test_prefix'), 'share', 'installed-tests', meson.project_name())
++photos_installed_test_execdir = join_paths(get_option('installed_test_prefix'), 'libexec', 'installed-tests', meson.project_name())
+ 
+ photos_namespace = 'org.gnome.Photos'
+ 
+diff --git a/meson_options.txt b/meson_options.txt
+index f34b5cc0..8e09970b 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -1,2 +1,3 @@
+ option('dogtail', type: 'boolean', value: true, description: 'test using dogtail')
+ option('installed_tests', type: 'boolean', value: false, description: 'Enable installation of some test cases')
++option('installed_test_prefix', type: 'string', value: '', description: 'Prefix for installed tests')