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.9";
29 pyproject = true;
30
31 disabled = pythonOlder "3.7";
32
33 src = fetchPypi {
34 inherit pname version;
35 hash = "sha256-RgB1trUSAxrCpGJxyLt6lzQXHcVPVnqIUacynalUUzY=";
36 };
37
38 pythonRelaxDeps = [ "aenum" ];
39
40 build-system = [ setuptools ];
41
42 dependencies = [
43 aenum
44 aiohttp
45 flatdict
46 jwcrypto
47 pycryptodome
48 pycryptodomex
49 pydash
50 pyjwt
51 python-jose
52 pyyaml
53 xmltodict
54 yarl
55 ];
56
57 checkInputs = [
58 pyfakefs
59 pytest-asyncio
60 pytest-mock
61 pytest-recording
62 pytestCheckHook
63 ];
64
65 pytestFlagsArray = [ "tests/" ];
66
67 disabledTests = [
68 "test_client_raise_exception"
69 # vcr.errors.CannotOverwriteExistingCassetteException: Can't overwrite existing cassette
70 "test_get_org_contact_user"
71 "test_update_org_contact_user"
72 "test_get_role_subscription"
73 "test_subscribe_unsubscribe"
74 "test_client_invalid_url"
75 ];
76
77 pythonImportsCheck = [
78 "okta"
79 "okta.cache"
80 "okta.client"
81 "okta.exceptions"
82 "okta.http_client"
83 "okta.models"
84 "okta.request_executor"
85 ];
86
87 meta = with lib; {
88 description = "Python SDK for the Okta Management API";
89 homepage = "https://github.com/okta/okta-sdk-python";
90 changelog = "https://github.com/okta/okta-sdk-python/blob/v${version}/CHANGELOG.md";
91 license = licenses.asl20;
92 maintainers = with maintainers; [ jbgosselin ];
93 };
94}