1{
2 lib,
3 buildPythonPackage,
4 defusedxml,
5 fetchPypi,
6 pbr,
7 cliff,
8 jsonschema,
9 testtools,
10 paramiko,
11 netaddr,
12 oslo-concurrency,
13 oslo-config,
14 oslo-log,
15 stestr,
16 oslo-serialization,
17 oslo-utils,
18 fixtures,
19 pythonOlder,
20 pyyaml,
21 subunit,
22 stevedore,
23 prettytable,
24 urllib3,
25 debtcollector,
26 hacking,
27 oslotest,
28 bash,
29 python,
30 setuptools,
31}:
32
33buildPythonPackage rec {
34 pname = "tempest";
35 version = "38.0.0";
36 pyproject = true;
37
38 disabled = pythonOlder "3.8";
39
40 src = fetchPypi {
41 inherit pname version;
42 hash = "sha256-2WmSN4NrH5/y5iAuYaaVuZkuh1ym14jFj7OXw8Jfxtc=";
43 };
44
45 nativeBuildInputs = [ setuptools ];
46
47 propagatedBuildInputs = [
48 pbr
49 cliff
50 defusedxml
51 jsonschema
52 testtools
53 paramiko
54 netaddr
55 oslo-concurrency
56 oslo-config
57 oslo-log
58 stestr
59 oslo-serialization
60 oslo-utils
61 fixtures
62 pyyaml
63 subunit
64 stevedore
65 prettytable
66 urllib3
67 debtcollector
68 ];
69
70 nativeCheckInputs = [
71 stestr
72 hacking
73 oslotest
74 ];
75
76 checkPhase = ''
77 # Tests expect these applications available as such.
78 mkdir -p bin
79 export PATH="$PWD/bin:$PATH"
80 printf '#!${bash}/bin/bash\nexec ${python.interpreter} -m tempest.cmd.main "$@"\n' > bin/tempest
81 printf '#!${bash}/bin/bash\nexec ${python.interpreter} -m tempest.cmd.subunit_describe_calls "$@"\n' > bin/subunit-describe-calls
82 chmod +x bin/*
83
84 stestr --test-path tempest/tests run -e <(echo "
85 tempest.tests.lib.cli.test_execute.TestExecute.test_execute_with_prefix
86 ")
87 '';
88
89 pythonImportsCheck = [ "tempest" ];
90
91 meta = with lib; {
92 description = "An OpenStack integration test suite that runs against live OpenStack cluster and validates an OpenStack deployment";
93 homepage = "https://github.com/openstack/tempest";
94 license = licenses.asl20;
95 maintainers = teams.openstack.members;
96 };
97}