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