1{
2 lib,
3 aenum,
4 aiohttp,
5 buildPythonPackage,
6 fetchPypi,
7 flatdict,
8 jwcrypto,
9 pycryptodome,
10 pycryptodomex,
11 pydash,
12 pyfakefs,
13 pyjwt,
14 pytest-asyncio,
15 pytest-mock,
16 pytest-recording,
17 pytestCheckHook,
18 python-jose,
19 pythonOlder,
20 pyyaml,
21 setuptools,
22 xmltodict,
23 yarl,
24}:
25
26buildPythonPackage rec {
27 pname = "okta";
28 version = "2.9.13";
29 pyproject = true;
30
31 disabled = pythonOlder "3.7";
32
33 src = fetchPypi {
34 inherit pname version;
35 hash = "sha256-jY6SZ1G3+NquF5TfLsGw6T9WO4smeBYT0gXLnRDoN+8=";
36 };
37
38 build-system = [ setuptools ];
39
40 dependencies = [
41 aenum
42 aiohttp
43 flatdict
44 jwcrypto
45 pycryptodome
46 pycryptodomex
47 pydash
48 pyjwt
49 python-jose
50 pyyaml
51 xmltodict
52 yarl
53 ];
54
55 checkInputs = [
56 pyfakefs
57 pytest-asyncio
58 pytest-mock
59 pytest-recording
60 pytestCheckHook
61 ];
62
63 enabledTestPaths = [ "tests/" ];
64
65 disabledTests = [
66 "test_client_raise_exception"
67 # vcr.errors.CannotOverwriteExistingCassetteException: Can't overwrite existing cassette
68 "test_get_org_contact_user"
69 "test_update_org_contact_user"
70 "test_get_role_subscription"
71 "test_subscribe_unsubscribe"
72 "test_client_invalid_url"
73 ];
74
75 pythonImportsCheck = [
76 "okta"
77 "okta.cache"
78 "okta.client"
79 "okta.exceptions"
80 "okta.http_client"
81 "okta.models"
82 "okta.request_executor"
83 ];
84
85 meta = with lib; {
86 description = "Python SDK for the Okta Management API";
87 homepage = "https://github.com/okta/okta-sdk-python";
88 changelog = "https://github.com/okta/okta-sdk-python/blob/v${version}/CHANGELOG.md";
89 license = licenses.asl20;
90 maintainers = with maintainers; [ jbgosselin ];
91 };
92}