1{
2 lib,
3 stdenv,
4 buildPythonPackage,
5 fetchFromGitHub,
6
7 # build-system
8 setuptools,
9
10 # dependencies
11 portpicker,
12 pyserial,
13 pyyaml,
14 timeout-decorator,
15 typing-extensions,
16
17 # tests
18 procps,
19 pytestCheckHook,
20 pytz,
21}:
22
23buildPythonPackage rec {
24 pname = "mobly";
25 version = "1.13";
26 pyproject = true;
27
28 src = fetchFromGitHub {
29 owner = "google";
30 repo = "mobly";
31 tag = version;
32 hash = "sha256-lQyhLZFA9lad7LYKa6AP+nQonTRtiFA8Egjo0ATbLVI=";
33 };
34
35 build-system = [ setuptools ];
36
37 dependencies = [
38 portpicker
39 pyserial
40 pyyaml
41 timeout-decorator
42 typing-extensions
43 ];
44
45 nativeCheckInputs = [
46 procps
47 pytestCheckHook
48 pytz
49 ];
50
51 disabledTests = lib.optionals stdenv.hostPlatform.isDarwin [
52 # cannot access /usr/bin/pgrep from the sandbox
53 "test_stop_standing_subproc"
54 "test_stop_standing_subproc_and_descendants"
55 "test_stop_standing_subproc_without_pipe"
56 ];
57
58 __darwinAllowLocalNetworking = true;
59
60 meta = with lib; {
61 changelog = "https://github.com/google/mobly/blob/${src.rev}/CHANGELOG.md";
62 description = "Automation framework for special end-to-end test cases";
63 homepage = "https://github.com/google/mobly";
64 license = licenses.asl20;
65 maintainers = with maintainers; [ hexa ];
66 };
67}