1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 ddt,
6 keystoneauth1,
7 openstackdocstheme,
8 oslo-i18n,
9 oslo-serialization,
10 oslo-utils,
11 pbr,
12 requests,
13 prettytable,
14 pythonOlder,
15 reno,
16 requests-mock,
17 setuptools,
18 simplejson,
19 sphinxHook,
20 stestr,
21 stevedore,
22}:
23
24buildPythonPackage rec {
25 pname = "python-cinderclient";
26 version = "9.8.0";
27 pyproject = true;
28
29 disabled = pythonOlder "3.9";
30
31 src = fetchPypi {
32 pname = "python_cinderclient";
33 inherit version;
34 hash = "sha256-vT7p+Uh8XnmVfwGKaz8t7OcFna2PYVXYPdS265RHoR0=";
35 };
36
37 nativeBuildInputs = [
38 openstackdocstheme
39 reno
40 sphinxHook
41 ];
42
43 sphinxBuilders = [ "man" ];
44
45 build-system = [ setuptools ];
46
47 dependencies = [
48 simplejson
49 keystoneauth1
50 oslo-i18n
51 oslo-utils
52 pbr
53 prettytable
54 requests
55 stevedore
56 ];
57
58 nativeCheckInputs = [
59 ddt
60 oslo-serialization
61 requests-mock
62 stestr
63 ];
64
65 checkPhase = ''
66 runHook preCheck
67
68 # File "/build/python-cinderclient-9.6.0/cinderclient/client.py", line 196, in request
69 # if raise_exc and resp.status_code >= 400:
70 # ^^^^^^^^^^^^^^^^^^^^^^^
71 #
72 # TypeError: '>=' not supported between instances of 'Mock' and 'int'
73 stestr run -e <(echo "
74 cinderclient.tests.unit.test_client.ClientTest.test_keystone_request_raises_auth_failure_exception
75 cinderclient.tests.unit.test_client.ClientTest.test_sessionclient_request_method
76 cinderclient.tests.unit.test_client.ClientTest.test_sessionclient_request_method_raises_badrequest
77 cinderclient.tests.unit.test_client.ClientTest.test_sessionclient_request_method_raises_overlimit
78 cinderclient.tests.unit.test_shell.ShellTest.test_password_prompted
79 cinderclient.tests.unit.test_shell.TestLoadVersionedActions.test_load_versioned_actions_with_help
80 ")
81
82 runHook postCheck
83 '';
84
85 pythonImportsCheck = [ "cinderclient" ];
86
87 meta = with lib; {
88 description = "OpenStack Block Storage API Client Library";
89 mainProgram = "cinder";
90 homepage = "https://github.com/openstack/python-cinderclient";
91 license = licenses.asl20;
92 teams = [ teams.openstack ];
93 };
94}