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.10.0";
31 pyproject = true;
32
33 src = fetchPypi {
34 inherit pname version;
35 hash = "sha256-NLhw27z4Bs21rsmEg7YoIKZWjTZOynsRdMpqi1qcd+0=";
36 };
37
38 build-system = [ setuptools ];
39
40 dependencies =
41 [
42 iso8601
43 os-service-types
44 pbr
45 requests
46 stevedore
47 typing-extensions
48 ]
49 # TODO: remove this workaround and fix breakages
50 ++ lib.flatten (builtins.attrValues optional-dependencies);
51
52 optional-dependencies = {
53 betamax = [
54 betamax
55 pyyaml
56 ];
57 kerberos = [ requests-kerberos ];
58 oauth1 = [ oauthlib ];
59 saml2 = [ lxml ];
60 };
61
62 nativeCheckInputs = [
63 fixtures
64 hacking
65 oslo-config
66 oslo-utils
67 pycodestyle
68 requests-mock
69 stestr
70 testresources
71 testtools
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}