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