1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 betamax,
6 fixtures,
7 hacking,
8 iso8601,
9 lxml,
10 oauthlib,
11 os-service-types,
12 oslo-config,
13 oslo-utils,
14 pbr,
15 pycodestyle,
16 pyyaml,
17 requests,
18 requests-kerberos,
19 requests-mock,
20 setuptools,
21 stestr,
22 stevedore,
23 testresources,
24 testtools,
25 typing-extensions,
26}:
27
28buildPythonPackage rec {
29 pname = "keystoneauth1";
30 version = "5.12.0";
31 pyproject = true;
32
33 src = fetchPypi {
34 inherit pname version;
35 hash = "sha256-3RE8Lz3LQY2fdhxzuM1DqW3fqKYStRxXaCI4HznKSug=";
36 };
37
38 build-system = [ setuptools ];
39
40 dependencies = [
41 iso8601
42 os-service-types
43 pbr
44 requests
45 stevedore
46 typing-extensions
47 ]
48 # TODO: remove this workaround and fix breakages
49 ++ lib.flatten (builtins.attrValues optional-dependencies);
50
51 optional-dependencies = {
52 betamax = [
53 betamax
54 pyyaml
55 ];
56 kerberos = [ requests-kerberos ];
57 oauth1 = [ oauthlib ];
58 saml2 = [ lxml ];
59 };
60
61 nativeCheckInputs = [
62 fixtures
63 hacking
64 oslo-config
65 oslo-utils
66 pycodestyle
67 requests-mock
68 stestr
69 testresources
70 testtools
71 ]
72 ++ lib.flatten (builtins.attrValues optional-dependencies);
73
74 # test_keystoneauth_betamax_fixture is incompatible with urllib3 2.0.0
75 # https://bugs.launchpad.net/keystoneauth/+bug/2020112
76 checkPhase = ''
77 stestr run \
78 -E "keystoneauth1.tests.unit.test_betamax_fixture.TestBetamaxFixture.test_keystoneauth_betamax_fixture"
79 '';
80
81 pythonImportsCheck = [ "keystoneauth1" ];
82
83 meta = with lib; {
84 description = "Authentication Library for OpenStack Identity";
85 homepage = "https://github.com/openstack/keystoneauth";
86 license = licenses.asl20;
87 teams = [ teams.openstack ];
88 };
89}