1{ lib
2, buildPythonPackage
3, python
4, pygobject3
5, pyatspi
6, pycairo
7, at-spi2-core
8, gobject-introspection
9, gtk3
10, gsettings-desktop-schemas
11, fetchurl
12, dbus
13, xvfb-run
14, wrapGAppsHook
15# , fetchPypi
16}:
17
18buildPythonPackage {
19 pname = "dogtail";
20 version = "0.9.11";
21
22 outputs = [ "out" "dev" ];
23
24 # https://gitlab.com/dogtail/dogtail/issues/1
25 # src = fetchPypi {
26 # inherit pname version;
27 # sha256 = "0p5wfssvzr9w0bvhllzbbd8fnp4cca2qxcpcsc33dchrmh5n552x";
28 # };
29 src = fetchurl {
30 url = "https://gitlab.com/dogtail/dogtail/raw/released/dogtail-0.9.10.tar.gz";
31 sha256 = "EGyxYopupfXPYtTL9mm9ujZorvh8AGaNXVKBPWsGy3c=";
32 };
33
34 patches = [
35 ./nix-support.patch
36 ];
37
38 nativeBuildInputs = [ gobject-introspection dbus xvfb-run wrapGAppsHook ]; # for setup hooks
39 propagatedBuildInputs = [ at-spi2-core gtk3 pygobject3 pyatspi pycairo ];
40 strictDeps = false; # issue 56943
41
42 checkPhase = ''
43 runHook preCheck
44 export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:$XDG_DATA_DIRS
45 # export NO_AT_BRIDGE=1
46 gsettings set org.gnome.desktop.interface toolkit-accessibility true
47 xvfb-run -s '-screen 0 800x600x24' dbus-run-session \
48 --config-file=${dbus.daemon}/share/dbus-1/session.conf \
49 ${python.interpreter} nix_run_setup test
50 runHook postCheck
51 '';
52
53 # TODO: Tests require accessibility
54 doCheck = false;
55
56 meta = {
57 description = "GUI test tool and automation framework that uses Accessibility technologies to communicate with desktop applications";
58 homepage = "https://gitlab.com/dogtail/dogtail";
59 license = lib.licenses.gpl2Only;
60 maintainers = with lib.maintainers; [ jtojnar ];
61 };
62}