1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 coreutils,
6 setuptools,
7 pbr,
8 prettytable,
9 keystoneauth1,
10 requests,
11 warlock,
12 oslo-utils,
13 oslo-i18n,
14 wrapt,
15 pyopenssl,
16 pythonOlder,
17 stestr,
18 testscenarios,
19 ddt,
20 requests-mock,
21 writeText,
22}:
23let
24 pname = "python-glanceclient";
25 version = "4.6.0";
26
27 disabledTests = [
28 "test_http_chunked_response"
29 "test_v1_download_has_no_stray_output_to_stdout"
30 "test_v2_requests_valid_cert_verification"
31 "test_download_has_no_stray_output_to_stdout"
32 "test_v2_download_has_no_stray_output_to_stdout"
33 "test_v2_requests_valid_cert_verification_no_compression"
34 "test_log_request_id_once"
35 ];
36in
37buildPythonPackage {
38 inherit pname version;
39 pyproject = true;
40
41 disabled = pythonOlder "3.8";
42
43 src = fetchPypi {
44 inherit pname version;
45 hash = "sha256-gJm4TzxtIjvkpOlbN82MPbY0JmDdiwlEMGGxZvTR+Po=";
46 };
47
48 postPatch = ''
49 substituteInPlace glanceclient/tests/unit/v1/test_shell.py \
50 --replace-fail "/bin/echo" "${lib.getExe' coreutils "echo"}"
51 '';
52
53 nativeBuildInputs = [ setuptools ];
54
55 propagatedBuildInputs = [
56 pbr
57 prettytable
58 keystoneauth1
59 requests
60 warlock
61 oslo-utils
62 oslo-i18n
63 wrapt
64 pyopenssl
65 ];
66
67 nativeCheckInputs = [
68 stestr
69 testscenarios
70 ddt
71 requests-mock
72 ];
73
74 checkPhase = ''
75 runHook preCheck
76 stestr run -e ${writeText "disabled-tests" (lib.concatStringsSep "\n" disabledTests)}
77 runHook postCheck
78 '';
79
80 pythonImportsCheck = [ "glanceclient" ];
81
82 meta = with lib; {
83 description = "Python bindings for the OpenStack Images API";
84 homepage = "https://github.com/openstack/python-glanceclient/";
85 license = licenses.asl20;
86 maintainers = teams.openstack.members;
87 };
88}