ocamlPackages.hxd: 0.3.2 -> 0.3.3 (#364231)
[NixPkgs.git] / pkgs / by-name / ri / ripe-atlas-tools / package.nix
blob60e32ead5b6111a48d4787658baef8ffc6b4b23b
2   lib,
3   python3,
4   fetchFromGitHub,
5   installShellFiles,
6 }:
8 python3.pkgs.buildPythonApplication rec {
9   pname = "ripe-atlas-tools";
10   version = "3.1.0";
12   src = fetchFromGitHub {
13     owner = "RIPE-NCC";
14     repo = "ripe-atlas-tools";
15     rev = "refs/tags/v${version}";
16     hash = "sha256-aETSDXCVteTruRKV/8Aw3R/bprB6txOsXrFvoZOxIus=";
17   };
19   postPatch = ''
20     # This mapping triggers network access on docs generation: https://github.com/RIPE-NCC/ripe-atlas-tools/issues/235
21     sed -i '/^intersphinx_mapping/d' docs/conf.py
22     # TODO: Ensure user-agent is picked up during build, remove me when https://github.com/RIPE-NCC/ripe-atlas-tools/pull/236
23     echo "include ripe/atlas/tools/user-agent" >> MANIFEST.in
24   '';
26   nativeBuildInputs = with python3.pkgs; [
27     sphinx-rtd-theme
28     sphinxHook
29     installShellFiles
30   ];
32   propagatedBuildInputs = with python3.pkgs; [
33     ipy
34     pyopenssl
35     python-dateutil
36     pyyaml
37     requests
38     ripe-atlas-cousteau
39     ripe-atlas-sagan
40     typing-extensions
41     tzlocal
42     ujson
43   ];
45   preBuild = ''
46     echo "RIPE Atlas Tools [NixOS ${version}" > ripe/atlas/tools/user-agent
47   '';
49   postInstall = ''
50     installShellCompletion --cmd ripe-atlas --bash ./ripe-atlas-bash-completion.sh
51   '';
53   pythonImportsCheck = [
54     "ripe.atlas.tools"
55   ];
57   nativeCheckInputs = with python3.pkgs; [
58     pytestCheckHook
59   ];
61   disabledTests = [
62     # Network tests: https://github.com/RIPE-NCC/ripe-atlas-tools/issues/234
63     "test_arg_from_file"
64     "test_arg_from_stdin"
65     # We injected our user-agent so the tests will fail
66     "test_user_agent_mac"
67     "test_user_agent_windows"
68     "test_user_agent_xdg_absent"
69     "test_user_agent_xdg_present"
70   ];
72   disabledTestPaths = [
73     # Relies on `ripe-atlas` being available in the PATH, installed with autocompletions
74     "tests/test_bash_completion.py"
75     # AS lookups are not mocked up: https://github.com/RIPE-NCC/ripe-atlas-tools/blob/master/tests/renderers/test_traceroute_aspath.py#L26
76     "tests/renderers/test_traceroute_aspath.py"
77     # We already build Sphinx so we do not need to test it
78     "tests/test_docs.py"
79   ];
81   HOME = "$TMPDIR"; # for cache generation.
83   # Necessary because it confuse the tests when it does "from ripe.atlas.sagan import X"
84   # version.py is used by Sphinx tests.
85   preCheck = ''
86     rm -rf ripe
87     mkdir -p ripe/atlas/tools
88     echo "__version__ = \"${version}\"" > ripe/atlas/tools/version.py
89   '';
91   meta = with lib; {
92     description = "RIPE ATLAS project tools";
93     homepage = "https://github.com/RIPE-NCC/ripe-atlas-tools";
94     changelog = "https://github.com/RIPE-NCC/ripe-atlas-tools/blob/v${version}/CHANGES.rst";
95     license = licenses.gpl3Only;
96     maintainers = with maintainers; [ raitobezarius ];
97   };