pyntcli 0.1.46__py3-none-any.whl → 0.1.48__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py +74 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py +74 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py +74 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py +74 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py +74 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py +74 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py +74 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py +24 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/build/lib/pyntcli/__init__.py +1 -1
- build/lib/build/lib/tests/auth/test_login.py +96 -0
- build/lib/build/lib/tests/store/test_cred_store.py +11 -0
- build/lib/pyntcli/__init__.py +1 -1
- build/lib/tests/auth/test_login.py +96 -0
- build/lib/tests/store/test_cred_store.py +11 -0
- pyntcli/__init__.py +1 -1
- pyntcli/auth/login.py +3 -0
- pyntcli/commands/postman.py +4 -0
- pyntcli/commands/root.py +1 -0
- pyntcli/pynt_docker/pynt_container.py +10 -2
- {pyntcli-0.1.46.dist-info → pyntcli-0.1.48.dist-info}/METADATA +1 -1
- pyntcli-0.1.48.dist-info/RECORD +127 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/build/lib/pyntcli/auth/login.py +0 -156
- build/lib/build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/build/lib/pyntcli/commands/har.py +0 -67
- build/lib/build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/build/lib/pyntcli/commands/root.py +0 -58
- build/lib/build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/build/lib/pyntcli/commands/util.py +0 -71
- build/lib/build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/build/lib/pyntcli/store/store.py +0 -58
- build/lib/build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/build/lib/pyntcli/transport/__init__.py +0 -0
- build/lib/build/lib/pyntcli/transport/pynt_requests.py +0 -54
- build/lib/build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/build/lib/pyntcli/ui/report.py +0 -62
- build/lib/build/lib/pyntcli/ui/ui_thread.py +0 -172
- build/lib/pyntcli/analytics/__init__.py +0 -0
- build/lib/pyntcli/analytics/send.py +0 -77
- build/lib/pyntcli/auth/__init__.py +0 -0
- build/lib/pyntcli/auth/login.py +0 -156
- build/lib/pyntcli/commands/__init__.py +0 -0
- build/lib/pyntcli/commands/har.py +0 -67
- build/lib/pyntcli/commands/id_command.py +0 -28
- build/lib/pyntcli/commands/newman.py +0 -77
- build/lib/pyntcli/commands/postman.py +0 -50
- build/lib/pyntcli/commands/proxy.py +0 -147
- build/lib/pyntcli/commands/pynt_cmd.py +0 -73
- build/lib/pyntcli/commands/root.py +0 -58
- build/lib/pyntcli/commands/sub_command.py +0 -15
- build/lib/pyntcli/commands/util.py +0 -71
- build/lib/pyntcli/pynt_docker/__init__.py +0 -1
- build/lib/pyntcli/pynt_docker/pynt_container.py +0 -218
- build/lib/pyntcli/store/__init__.py +0 -1
- build/lib/pyntcli/store/json_connector.py +0 -23
- build/lib/pyntcli/store/store.py +0 -58
- build/lib/pyntcli/store/store_connector.py +0 -17
- build/lib/pyntcli/transport/__init__.py +0 -0
- build/lib/pyntcli/transport/pynt_requests.py +0 -54
- build/lib/pyntcli/ui/__init__.py +0 -0
- build/lib/pyntcli/ui/progress.py +0 -39
- build/lib/pyntcli/ui/pynt_errors.py +0 -7
- build/lib/pyntcli/ui/report.py +0 -62
- build/lib/pyntcli/ui/ui_thread.py +0 -172
- pyntcli-0.1.46.dist-info/RECORD +0 -349
- {pyntcli-0.1.46.dist-info → pyntcli-0.1.48.dist-info}/WHEEL +0 -0
- {pyntcli-0.1.46.dist-info → pyntcli-0.1.48.dist-info}/entry_points.txt +0 -0
- {pyntcli-0.1.46.dist-info → pyntcli-0.1.48.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
from urllib.parse import urlparse
|
|
2
|
+
import json
|
|
3
|
+
from _pytest.monkeypatch import monkeypatch
|
|
4
|
+
import pytest
|
|
5
|
+
import requests
|
|
6
|
+
import requests_mock
|
|
7
|
+
import datetime
|
|
8
|
+
import jwt
|
|
9
|
+
import os
|
|
10
|
+
from cryptography.hazmat.primitives.asymmetric import rsa
|
|
11
|
+
from cryptography.hazmat.primitives import serialization
|
|
12
|
+
|
|
13
|
+
from pyntcli.auth.login import Login, Timeout, InvalidTokenInEnvVarsException, is_jwt_expired, should_login, PYNT_CREDENTIALS
|
|
14
|
+
from pyntcli.store import CredStore
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class TestLogin():
|
|
18
|
+
@pytest.fixture
|
|
19
|
+
def mock_webbrowser(self, mocker):
|
|
20
|
+
try:
|
|
21
|
+
mocker.patch("webbrowser.open", return_value=None)
|
|
22
|
+
yield
|
|
23
|
+
finally:
|
|
24
|
+
pass
|
|
25
|
+
|
|
26
|
+
def get_request_url_parameters(self, req: requests.PreparedRequest) :
|
|
27
|
+
u = req.url
|
|
28
|
+
parsed_url = urlparse(u)
|
|
29
|
+
return parsed_url.query
|
|
30
|
+
|
|
31
|
+
def poll_matcher(self, request: requests.PreparedRequest):
|
|
32
|
+
assert "request_id" in self.get_request_url_parameters(request)
|
|
33
|
+
|
|
34
|
+
resp = requests.Response()
|
|
35
|
+
self.login_request_cnt += 1
|
|
36
|
+
if self.login_request_cnt < 2:
|
|
37
|
+
resp.status_code = 404
|
|
38
|
+
return resp
|
|
39
|
+
|
|
40
|
+
resp.status_code = 200
|
|
41
|
+
resp._content = json.dumps({"token": "testToken"}).encode()
|
|
42
|
+
return resp
|
|
43
|
+
|
|
44
|
+
def test_login(self, mock_webbrowser, mock_sleep, mock_expanduser):
|
|
45
|
+
l = Login()
|
|
46
|
+
self.login_request_cnt = 0
|
|
47
|
+
with requests_mock.mock() as m:
|
|
48
|
+
m.add_matcher(self.poll_matcher)
|
|
49
|
+
l.login()
|
|
50
|
+
|
|
51
|
+
assert self.login_request_cnt == 2
|
|
52
|
+
c = CredStore()
|
|
53
|
+
assert c.get("token") == {"token": "testToken"}
|
|
54
|
+
|
|
55
|
+
def test_login_timeout(self, mock_webbrowser, mock_sleep, mock_expanduser):
|
|
56
|
+
l = Login()
|
|
57
|
+
l.login_wait_period = 0
|
|
58
|
+
self.login_request_cnt = 0
|
|
59
|
+
with pytest.raises(Timeout):
|
|
60
|
+
with requests_mock.mock() as m:
|
|
61
|
+
m.add_matcher(self.poll_matcher)
|
|
62
|
+
l.get_token_using_request_id("some_id")
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
def test_is_jwt_expired(self):
|
|
66
|
+
|
|
67
|
+
private_key = rsa.generate_private_key(
|
|
68
|
+
public_exponent=65537,
|
|
69
|
+
key_size=2048
|
|
70
|
+
).private_bytes(encoding=serialization.Encoding.PEM,
|
|
71
|
+
format=serialization.PrivateFormat.PKCS8,
|
|
72
|
+
encryption_algorithm=serialization.NoEncryption())
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
token_data = {
|
|
76
|
+
"exp": int((datetime.datetime.now() - datetime.timedelta(days=1)).timestamp())
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
token = jwt.encode(token_data, private_key.decode(), algorithm="RS256").decode("utf-8")
|
|
80
|
+
assert is_jwt_expired(token) == True
|
|
81
|
+
|
|
82
|
+
token_data = {
|
|
83
|
+
"exp": int((datetime.datetime.now() + datetime.timedelta(days=1)).timestamp())
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
token = jwt.encode(token_data, private_key.decode(), algorithm="RS256").decode("utf-8")
|
|
87
|
+
assert is_jwt_expired(token) == False
|
|
88
|
+
|
|
89
|
+
def test_login_using_env_vars(self, mocker, mock_expanduser):
|
|
90
|
+
creds = json.dumps({"token": {"refresh_token": "some data"}})
|
|
91
|
+
mocker.patch.dict(os.environ, {PYNT_CREDENTIALS: creds})
|
|
92
|
+
assert should_login() == False
|
|
93
|
+
|
|
94
|
+
os.environ[PYNT_CREDENTIALS] = "some bad credentials"
|
|
95
|
+
with pytest.raises(InvalidTokenInEnvVarsException):
|
|
96
|
+
should_login()
|
pyntcli/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
__version__ = "0.1.
|
|
1
|
+
__version__ = "0.1.48"
|
pyntcli/auth/login.py
CHANGED
|
@@ -21,6 +21,7 @@ class InvalidTokenInEnvVarsException(LoginException):
|
|
|
21
21
|
pass
|
|
22
22
|
|
|
23
23
|
PYNT_CREDENTIALS = "PYNT_CREDENTIALS"
|
|
24
|
+
PYNT_SAAS = "PYNT_SAAS_URL"
|
|
24
25
|
|
|
25
26
|
class Login():
|
|
26
27
|
def __init__(self) -> None:
|
|
@@ -59,6 +60,8 @@ class Login():
|
|
|
59
60
|
|
|
60
61
|
|
|
61
62
|
def refresh_request(refresh_token):
|
|
63
|
+
if os.environ.get(PYNT_SAAS):
|
|
64
|
+
return pynt_requests.post(os.environ[PYNT_SAAS] + "/auth/refresh", json={"refresh_token": refresh_token})
|
|
62
65
|
return pynt_requests.post("https://auth.pynt.io/default/refresh", json={"refresh_token": refresh_token})
|
|
63
66
|
|
|
64
67
|
def refresh_token():
|
pyntcli/commands/postman.py
CHANGED
|
@@ -32,6 +32,10 @@ class PostmanSubCommand(sub_command.PyntSubCommand):
|
|
|
32
32
|
return postman_cmd
|
|
33
33
|
|
|
34
34
|
def run_cmd(self, args: argparse.Namespace):
|
|
35
|
+
if "application_id" in args and args.application_id:
|
|
36
|
+
ui_thread.print("application-id is not supported in postman integration, use the request body in the start scan request")
|
|
37
|
+
args.application_id = ""
|
|
38
|
+
|
|
35
39
|
container = pynt_container.get_container_with_arguments(args ,pynt_container.PyntDockerPort("5001", args.port, name="--port"))
|
|
36
40
|
|
|
37
41
|
if util.is_port_in_use(args.port):
|
pyntcli/commands/root.py
CHANGED
|
@@ -37,6 +37,7 @@ class BaseCommand():
|
|
|
37
37
|
parser.add_argument("--insecure", default=False, required=False, action='store_true',help="use when target uses self signed certificates")
|
|
38
38
|
parser.add_argument("--dev-flags", type=str,default="", help=argparse.SUPPRESS)
|
|
39
39
|
parser.add_argument("--host-ca", type=str, default="")
|
|
40
|
+
parser.add_argument("--application-id", type=str, default="", required=False)
|
|
40
41
|
|
|
41
42
|
def get_subparser(self) -> argparse._SubParsersAction:
|
|
42
43
|
if self.subparser is None:
|
|
@@ -8,7 +8,7 @@ from typing import List
|
|
|
8
8
|
from pyntcli.ui import ui_thread
|
|
9
9
|
from pyntcli.analytics import send as analytics
|
|
10
10
|
from pyntcli.store import CredStore
|
|
11
|
-
from pyntcli.auth.login import PYNT_CREDENTIALS
|
|
11
|
+
from pyntcli.auth.login import PYNT_CREDENTIALS , PYNT_SAAS
|
|
12
12
|
|
|
13
13
|
PYNT_DOCKER_IMAGE = "ghcr.io/pynt-io/pynt"
|
|
14
14
|
|
|
@@ -67,6 +67,9 @@ def get_container_with_arguments(args: argparse.Namespace , *port_args: PyntDock
|
|
|
67
67
|
if "insecure" in args and args.insecure:
|
|
68
68
|
docker_arguments.append("--insecure")
|
|
69
69
|
|
|
70
|
+
if "application_id" in args and args.application_id:
|
|
71
|
+
docker_arguments += ["--application-id",args.application_id]
|
|
72
|
+
|
|
70
73
|
if "dev_flags" in args:
|
|
71
74
|
docker_arguments += args.dev_flags.split(" ")
|
|
72
75
|
|
|
@@ -75,8 +78,13 @@ def get_container_with_arguments(args: argparse.Namespace , *port_args: PyntDock
|
|
|
75
78
|
ca_name = os.path.basename(args.host_ca)
|
|
76
79
|
docker_arguments += ["--host-ca", ca_name]
|
|
77
80
|
mounts.append(create_mount(os.path.abspath(args.host_ca), "/etc/pynt/{}".format(ca_name)))
|
|
81
|
+
|
|
82
|
+
env = {PYNT_CREDENTIALS:CredStore().get_access_token()}
|
|
83
|
+
|
|
84
|
+
if os.environ.get(PYNT_SAAS):
|
|
85
|
+
env.update({PYNT_SAAS: os.environ[PYNT_SAAS]})
|
|
78
86
|
|
|
79
|
-
return PyntBaseConatiner(docker_type, docker_arguments, mounts,
|
|
87
|
+
return PyntBaseConatiner(docker_type, docker_arguments, mounts, env)
|
|
80
88
|
|
|
81
89
|
def _container_image_from_tag(tag: str) -> str:
|
|
82
90
|
if ":" in tag:
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py,sha256=HQG3McjdVzmICa25LtGfE6oXxlwg6YdEcj9EoChMH00,23
|
|
2
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py,sha256=w5QcGekOs4JtIawb39vrwZBCcMRkA1RZGPKOQFByhYc,3449
|
|
3
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py,sha256=gToq5K74GtgeGQXjFvXSzMaE6axBYxAzcFG5XJPOXjI,427
|
|
4
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py,sha256=M6JRFTQRZrL6M2-iph_r-aBSQMMiFDncQbVYeObBFYU,3296
|
|
5
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py,sha256=_7-917EtNC9eKEumO2_lt-7KuDmCwOZFaowCm7DbA_A,254
|
|
6
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py,sha256=HQG3McjdVzmICa25LtGfE6oXxlwg6YdEcj9EoChMH00,23
|
|
7
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py,sha256=w5QcGekOs4JtIawb39vrwZBCcMRkA1RZGPKOQFByhYc,3449
|
|
8
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py,sha256=gToq5K74GtgeGQXjFvXSzMaE6axBYxAzcFG5XJPOXjI,427
|
|
9
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py,sha256=M6JRFTQRZrL6M2-iph_r-aBSQMMiFDncQbVYeObBFYU,3296
|
|
10
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py,sha256=_7-917EtNC9eKEumO2_lt-7KuDmCwOZFaowCm7DbA_A,254
|
|
11
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py,sha256=HQG3McjdVzmICa25LtGfE6oXxlwg6YdEcj9EoChMH00,23
|
|
12
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py,sha256=w5QcGekOs4JtIawb39vrwZBCcMRkA1RZGPKOQFByhYc,3449
|
|
13
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py,sha256=gToq5K74GtgeGQXjFvXSzMaE6axBYxAzcFG5XJPOXjI,427
|
|
14
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py,sha256=M6JRFTQRZrL6M2-iph_r-aBSQMMiFDncQbVYeObBFYU,3296
|
|
15
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py,sha256=_7-917EtNC9eKEumO2_lt-7KuDmCwOZFaowCm7DbA_A,254
|
|
16
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py,sha256=HQG3McjdVzmICa25LtGfE6oXxlwg6YdEcj9EoChMH00,23
|
|
17
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py,sha256=w5QcGekOs4JtIawb39vrwZBCcMRkA1RZGPKOQFByhYc,3449
|
|
18
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py,sha256=gToq5K74GtgeGQXjFvXSzMaE6axBYxAzcFG5XJPOXjI,427
|
|
19
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py,sha256=M6JRFTQRZrL6M2-iph_r-aBSQMMiFDncQbVYeObBFYU,3296
|
|
20
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py,sha256=_7-917EtNC9eKEumO2_lt-7KuDmCwOZFaowCm7DbA_A,254
|
|
21
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py,sha256=HQG3McjdVzmICa25LtGfE6oXxlwg6YdEcj9EoChMH00,23
|
|
22
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py,sha256=w5QcGekOs4JtIawb39vrwZBCcMRkA1RZGPKOQFByhYc,3449
|
|
23
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py,sha256=gToq5K74GtgeGQXjFvXSzMaE6axBYxAzcFG5XJPOXjI,427
|
|
24
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py,sha256=M6JRFTQRZrL6M2-iph_r-aBSQMMiFDncQbVYeObBFYU,3296
|
|
25
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py,sha256=_7-917EtNC9eKEumO2_lt-7KuDmCwOZFaowCm7DbA_A,254
|
|
26
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py,sha256=HQG3McjdVzmICa25LtGfE6oXxlwg6YdEcj9EoChMH00,23
|
|
27
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py,sha256=w5QcGekOs4JtIawb39vrwZBCcMRkA1RZGPKOQFByhYc,3449
|
|
28
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py,sha256=gToq5K74GtgeGQXjFvXSzMaE6axBYxAzcFG5XJPOXjI,427
|
|
29
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py,sha256=M6JRFTQRZrL6M2-iph_r-aBSQMMiFDncQbVYeObBFYU,3296
|
|
30
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py,sha256=_7-917EtNC9eKEumO2_lt-7KuDmCwOZFaowCm7DbA_A,254
|
|
31
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py,sha256=HQG3McjdVzmICa25LtGfE6oXxlwg6YdEcj9EoChMH00,23
|
|
32
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py,sha256=w5QcGekOs4JtIawb39vrwZBCcMRkA1RZGPKOQFByhYc,3449
|
|
33
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py,sha256=gToq5K74GtgeGQXjFvXSzMaE6axBYxAzcFG5XJPOXjI,427
|
|
34
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py,sha256=M6JRFTQRZrL6M2-iph_r-aBSQMMiFDncQbVYeObBFYU,3296
|
|
35
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py,sha256=_7-917EtNC9eKEumO2_lt-7KuDmCwOZFaowCm7DbA_A,254
|
|
36
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py,sha256=HQG3McjdVzmICa25LtGfE6oXxlwg6YdEcj9EoChMH00,23
|
|
37
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py,sha256=w5QcGekOs4JtIawb39vrwZBCcMRkA1RZGPKOQFByhYc,3449
|
|
38
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py,sha256=gToq5K74GtgeGQXjFvXSzMaE6axBYxAzcFG5XJPOXjI,427
|
|
39
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py,sha256=M6JRFTQRZrL6M2-iph_r-aBSQMMiFDncQbVYeObBFYU,3296
|
|
40
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py,sha256=_7-917EtNC9eKEumO2_lt-7KuDmCwOZFaowCm7DbA_A,254
|
|
41
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py,sha256=HQG3McjdVzmICa25LtGfE6oXxlwg6YdEcj9EoChMH00,23
|
|
42
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py,sha256=w5QcGekOs4JtIawb39vrwZBCcMRkA1RZGPKOQFByhYc,3449
|
|
43
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py,sha256=gToq5K74GtgeGQXjFvXSzMaE6axBYxAzcFG5XJPOXjI,427
|
|
44
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py,sha256=M6JRFTQRZrL6M2-iph_r-aBSQMMiFDncQbVYeObBFYU,3296
|
|
45
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py,sha256=_7-917EtNC9eKEumO2_lt-7KuDmCwOZFaowCm7DbA_A,254
|
|
46
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py,sha256=HQG3McjdVzmICa25LtGfE6oXxlwg6YdEcj9EoChMH00,23
|
|
47
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py,sha256=w5QcGekOs4JtIawb39vrwZBCcMRkA1RZGPKOQFByhYc,3449
|
|
48
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py,sha256=gToq5K74GtgeGQXjFvXSzMaE6axBYxAzcFG5XJPOXjI,427
|
|
49
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py,sha256=M6JRFTQRZrL6M2-iph_r-aBSQMMiFDncQbVYeObBFYU,3296
|
|
50
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py,sha256=_7-917EtNC9eKEumO2_lt-7KuDmCwOZFaowCm7DbA_A,254
|
|
51
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py,sha256=HQG3McjdVzmICa25LtGfE6oXxlwg6YdEcj9EoChMH00,23
|
|
52
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py,sha256=w5QcGekOs4JtIawb39vrwZBCcMRkA1RZGPKOQFByhYc,3449
|
|
53
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py,sha256=gToq5K74GtgeGQXjFvXSzMaE6axBYxAzcFG5XJPOXjI,427
|
|
54
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py,sha256=M6JRFTQRZrL6M2-iph_r-aBSQMMiFDncQbVYeObBFYU,3296
|
|
55
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py,sha256=_7-917EtNC9eKEumO2_lt-7KuDmCwOZFaowCm7DbA_A,254
|
|
56
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py,sha256=HQG3McjdVzmICa25LtGfE6oXxlwg6YdEcj9EoChMH00,23
|
|
57
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py,sha256=w5QcGekOs4JtIawb39vrwZBCcMRkA1RZGPKOQFByhYc,3449
|
|
58
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py,sha256=gToq5K74GtgeGQXjFvXSzMaE6axBYxAzcFG5XJPOXjI,427
|
|
59
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py,sha256=M6JRFTQRZrL6M2-iph_r-aBSQMMiFDncQbVYeObBFYU,3296
|
|
60
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py,sha256=_7-917EtNC9eKEumO2_lt-7KuDmCwOZFaowCm7DbA_A,254
|
|
61
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py,sha256=HQG3McjdVzmICa25LtGfE6oXxlwg6YdEcj9EoChMH00,23
|
|
62
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py,sha256=w5QcGekOs4JtIawb39vrwZBCcMRkA1RZGPKOQFByhYc,3449
|
|
63
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py,sha256=gToq5K74GtgeGQXjFvXSzMaE6axBYxAzcFG5XJPOXjI,427
|
|
64
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py,sha256=M6JRFTQRZrL6M2-iph_r-aBSQMMiFDncQbVYeObBFYU,3296
|
|
65
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py,sha256=_7-917EtNC9eKEumO2_lt-7KuDmCwOZFaowCm7DbA_A,254
|
|
66
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py,sha256=HQG3McjdVzmICa25LtGfE6oXxlwg6YdEcj9EoChMH00,23
|
|
67
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/pyntcli/main.py,sha256=w5QcGekOs4JtIawb39vrwZBCcMRkA1RZGPKOQFByhYc,3449
|
|
68
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/tests/conftest.py,sha256=gToq5K74GtgeGQXjFvXSzMaE6axBYxAzcFG5XJPOXjI,427
|
|
69
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py,sha256=M6JRFTQRZrL6M2-iph_r-aBSQMMiFDncQbVYeObBFYU,3296
|
|
70
|
+
build/lib/build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py,sha256=_7-917EtNC9eKEumO2_lt-7KuDmCwOZFaowCm7DbA_A,254
|
|
71
|
+
build/lib/build/lib/build/lib/build/lib/pyntcli/__init__.py,sha256=HQG3McjdVzmICa25LtGfE6oXxlwg6YdEcj9EoChMH00,23
|
|
72
|
+
build/lib/build/lib/build/lib/build/lib/pyntcli/main.py,sha256=w5QcGekOs4JtIawb39vrwZBCcMRkA1RZGPKOQFByhYc,3449
|
|
73
|
+
build/lib/build/lib/build/lib/build/lib/tests/conftest.py,sha256=gToq5K74GtgeGQXjFvXSzMaE6axBYxAzcFG5XJPOXjI,427
|
|
74
|
+
build/lib/build/lib/build/lib/build/lib/tests/auth/test_login.py,sha256=M6JRFTQRZrL6M2-iph_r-aBSQMMiFDncQbVYeObBFYU,3296
|
|
75
|
+
build/lib/build/lib/build/lib/build/lib/tests/store/test_cred_store.py,sha256=_7-917EtNC9eKEumO2_lt-7KuDmCwOZFaowCm7DbA_A,254
|
|
76
|
+
build/lib/build/lib/build/lib/pyntcli/__init__.py,sha256=HQG3McjdVzmICa25LtGfE6oXxlwg6YdEcj9EoChMH00,23
|
|
77
|
+
build/lib/build/lib/build/lib/pyntcli/main.py,sha256=w5QcGekOs4JtIawb39vrwZBCcMRkA1RZGPKOQFByhYc,3449
|
|
78
|
+
build/lib/build/lib/build/lib/tests/conftest.py,sha256=gToq5K74GtgeGQXjFvXSzMaE6axBYxAzcFG5XJPOXjI,427
|
|
79
|
+
build/lib/build/lib/build/lib/tests/auth/test_login.py,sha256=M6JRFTQRZrL6M2-iph_r-aBSQMMiFDncQbVYeObBFYU,3296
|
|
80
|
+
build/lib/build/lib/build/lib/tests/store/test_cred_store.py,sha256=_7-917EtNC9eKEumO2_lt-7KuDmCwOZFaowCm7DbA_A,254
|
|
81
|
+
build/lib/build/lib/pyntcli/__init__.py,sha256=HQG3McjdVzmICa25LtGfE6oXxlwg6YdEcj9EoChMH00,23
|
|
82
|
+
build/lib/build/lib/pyntcli/main.py,sha256=w5QcGekOs4JtIawb39vrwZBCcMRkA1RZGPKOQFByhYc,3449
|
|
83
|
+
build/lib/build/lib/tests/conftest.py,sha256=gToq5K74GtgeGQXjFvXSzMaE6axBYxAzcFG5XJPOXjI,427
|
|
84
|
+
build/lib/build/lib/tests/auth/test_login.py,sha256=M6JRFTQRZrL6M2-iph_r-aBSQMMiFDncQbVYeObBFYU,3296
|
|
85
|
+
build/lib/build/lib/tests/store/test_cred_store.py,sha256=_7-917EtNC9eKEumO2_lt-7KuDmCwOZFaowCm7DbA_A,254
|
|
86
|
+
build/lib/pyntcli/__init__.py,sha256=HQG3McjdVzmICa25LtGfE6oXxlwg6YdEcj9EoChMH00,23
|
|
87
|
+
build/lib/pyntcli/main.py,sha256=w5QcGekOs4JtIawb39vrwZBCcMRkA1RZGPKOQFByhYc,3449
|
|
88
|
+
build/lib/tests/conftest.py,sha256=gToq5K74GtgeGQXjFvXSzMaE6axBYxAzcFG5XJPOXjI,427
|
|
89
|
+
build/lib/tests/auth/test_login.py,sha256=M6JRFTQRZrL6M2-iph_r-aBSQMMiFDncQbVYeObBFYU,3296
|
|
90
|
+
build/lib/tests/store/test_cred_store.py,sha256=_7-917EtNC9eKEumO2_lt-7KuDmCwOZFaowCm7DbA_A,254
|
|
91
|
+
pyntcli/__init__.py,sha256=HQG3McjdVzmICa25LtGfE6oXxlwg6YdEcj9EoChMH00,23
|
|
92
|
+
pyntcli/main.py,sha256=w5QcGekOs4JtIawb39vrwZBCcMRkA1RZGPKOQFByhYc,3449
|
|
93
|
+
pyntcli/analytics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
94
|
+
pyntcli/analytics/send.py,sha256=hHoMorH3bmY0oXHDQac1JJAAN05BjDHaY7p0WmKg4Z4,2095
|
|
95
|
+
pyntcli/auth/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
96
|
+
pyntcli/auth/login.py,sha256=kUDrmnKyfhiGgRgwZoNrmla5v4ELBCr7lFyEkSP5IGE,4918
|
|
97
|
+
pyntcli/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
98
|
+
pyntcli/commands/har.py,sha256=s5TUw9JVhINRa1kaU6d784u6k_UAMcYu8ZzLk9W6JG4,2935
|
|
99
|
+
pyntcli/commands/id_command.py,sha256=2J5oEa39uyBMMSCRHzuKh3_11CeUEYi7YLoBk1yuu_I,942
|
|
100
|
+
pyntcli/commands/newman.py,sha256=s38qQWdWXLA0sRqxhhxKStdUi5BnUFPo4mn9K5E-TJg,3888
|
|
101
|
+
pyntcli/commands/postman.py,sha256=FPvgNNAmm6KsSo5duSy3TtuyvsgQt4ozS6IBQeUSes0,2523
|
|
102
|
+
pyntcli/commands/proxy.py,sha256=c1rsH6LaNyUFa_f5pzLOOmbHYUb2fQKnBW6hruE8cEw,7348
|
|
103
|
+
pyntcli/commands/pynt_cmd.py,sha256=JjOHrJs5S9iPtg272zBr04e7uKsO0IdSLaA5wpSg888,2406
|
|
104
|
+
pyntcli/commands/root.py,sha256=n0v8LhlKJcuzr4r1aRhHLlpe9aLngUH0gquItaTnkMQ,2252
|
|
105
|
+
pyntcli/commands/sub_command.py,sha256=POEBodnU8vdfPRtagFG83QVbxvnVN4LIJov-mNi1jkw,375
|
|
106
|
+
pyntcli/commands/util.py,sha256=jPNj76LrLi-eF6a_g6FcT2pPnRIaqm41UGgnd43tZcc,2290
|
|
107
|
+
pyntcli/pynt_docker/__init__.py,sha256=PQIOVxc7XXtMLfEX7ojgwf_Z3mmTllO3ZvzUZTPOxQY,30
|
|
108
|
+
pyntcli/pynt_docker/pynt_container.py,sha256=rpyIOL6PPxUeOdcnVmT1k12Ug-FL9AZh1TZT8W41Oxk,7314
|
|
109
|
+
pyntcli/store/__init__.py,sha256=xuS9OB21F6B1sUx5XPGxz_6WpG6-KTMbuq50RrZS5OY,29
|
|
110
|
+
pyntcli/store/json_connector.py,sha256=UGs3uORw3iyn0YJ8kzab-veEZToA6d-ByXYuqEleWsA,560
|
|
111
|
+
pyntcli/store/store.py,sha256=Fbc7yxjht0EJ89eGF8eMgNQJ3sgYRTPmj2-sWQ5UUPs,1766
|
|
112
|
+
pyntcli/store/store_connector.py,sha256=w4LzcpRZesUZL1f63RmLlWEFRtJ6Y6rcS6PkkGtO4MA,357
|
|
113
|
+
pyntcli/transport/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
114
|
+
pyntcli/transport/pynt_requests.py,sha256=a9siz45X1RESKCWoVDe1tnhzn0vjVdYd_25KIxQO4h0,1316
|
|
115
|
+
pyntcli/ui/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
116
|
+
pyntcli/ui/progress.py,sha256=RrnO_jJNunoyupylakmWmHOEPw3lh99OHpKBzL6OBiE,1008
|
|
117
|
+
pyntcli/ui/pynt_errors.py,sha256=UAr8OV5EM4zLhfWSmK_qss8nal2Ezo66Dk8ZMvR_RTs,546
|
|
118
|
+
pyntcli/ui/report.py,sha256=W-icPSZrGLOubXgam0LpOvHLl_aZg9Zx9qIkL8Ym5PE,1930
|
|
119
|
+
pyntcli/ui/ui_thread.py,sha256=JAonXc6aOFawaEixghclxHSCHZBieEWfZzsPef_ZNMI,4796
|
|
120
|
+
tests/conftest.py,sha256=gToq5K74GtgeGQXjFvXSzMaE6axBYxAzcFG5XJPOXjI,427
|
|
121
|
+
tests/auth/test_login.py,sha256=M6JRFTQRZrL6M2-iph_r-aBSQMMiFDncQbVYeObBFYU,3296
|
|
122
|
+
tests/store/test_cred_store.py,sha256=_7-917EtNC9eKEumO2_lt-7KuDmCwOZFaowCm7DbA_A,254
|
|
123
|
+
pyntcli-0.1.48.dist-info/METADATA,sha256=yORrSXym4eTkzcpam7h_OVezGlE41NnjWxMXe8va6yY,365
|
|
124
|
+
pyntcli-0.1.48.dist-info/WHEEL,sha256=pkctZYzUS4AYVn6dJ-7367OJZivF2e8RA9b_ZBjif18,92
|
|
125
|
+
pyntcli-0.1.48.dist-info/entry_points.txt,sha256=kcGmqAxXDttNk2EPRcqunc_LTVp61gzakz0v-GEE2SY,43
|
|
126
|
+
pyntcli-0.1.48.dist-info/top_level.txt,sha256=cfPl5WA9Rf7lwTBVIVy_tX9tJ2H9TFVYd_4L9cSUcXQ,36
|
|
127
|
+
pyntcli-0.1.48.dist-info/RECORD,,
|
|
File without changes
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import requests
|
|
2
|
-
import time
|
|
3
|
-
import platform
|
|
4
|
-
|
|
5
|
-
from pyntcli import __version__
|
|
6
|
-
from pyntcli.transport import pynt_requests
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
PYNT_DEFAULT_USER_ID = "d9e3b82b-2900-43bf-8c8f-7ffe2f0cda36"
|
|
10
|
-
MIXPANEL_TOKEN = "05c26edb86084bbbb803eed6818cd8aa"
|
|
11
|
-
MIXPANEL_URL = "https://api-eu.mixpanel.com/track?ip=1"
|
|
12
|
-
|
|
13
|
-
def stop():
|
|
14
|
-
if not AnalyticsSender._instance:
|
|
15
|
-
return
|
|
16
|
-
AnalyticsSender.instance().done()
|
|
17
|
-
|
|
18
|
-
def emit(event, properties=None):
|
|
19
|
-
AnalyticsSender.instance().emit(event, properties)
|
|
20
|
-
|
|
21
|
-
def set_user_id(user_id):
|
|
22
|
-
AnalyticsSender.instance().set_user_id(user_id)
|
|
23
|
-
|
|
24
|
-
CLI_START = "cli_start"
|
|
25
|
-
LOGIN_START = "cli_login_start"
|
|
26
|
-
LOGIN_DONE = "cli_login_done"
|
|
27
|
-
ERROR = "error"
|
|
28
|
-
|
|
29
|
-
class AnalyticsSender():
|
|
30
|
-
_instance = None
|
|
31
|
-
|
|
32
|
-
def __init__(self, user_id=PYNT_DEFAULT_USER_ID) -> None:
|
|
33
|
-
self.user_id = user_id
|
|
34
|
-
self.version = __version__
|
|
35
|
-
self.events = []
|
|
36
|
-
|
|
37
|
-
@staticmethod
|
|
38
|
-
def instance():
|
|
39
|
-
if not AnalyticsSender._instance:
|
|
40
|
-
AnalyticsSender._instance = AnalyticsSender()
|
|
41
|
-
|
|
42
|
-
return AnalyticsSender._instance
|
|
43
|
-
|
|
44
|
-
def base_event(self, event_type):
|
|
45
|
-
return {
|
|
46
|
-
"event": event_type,
|
|
47
|
-
"properties": {
|
|
48
|
-
"time": time.time(),
|
|
49
|
-
"distinct_id": self.user_id,
|
|
50
|
-
"$os": platform.platform(),
|
|
51
|
-
"cli_version": self.version,
|
|
52
|
-
"token": MIXPANEL_TOKEN
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
def emit(self, event, properties):
|
|
57
|
-
base_event = self.base_event(event)
|
|
58
|
-
|
|
59
|
-
if properties:
|
|
60
|
-
for k,v in properties.items():
|
|
61
|
-
base_event["properties"][k] = v
|
|
62
|
-
|
|
63
|
-
if self.user_id != PYNT_DEFAULT_USER_ID:
|
|
64
|
-
pynt_requests.post(MIXPANEL_URL, json=[base_event])
|
|
65
|
-
else:
|
|
66
|
-
self.events.append(base_event)
|
|
67
|
-
|
|
68
|
-
def set_user_id(self, user_id):
|
|
69
|
-
self.user_id = user_id
|
|
70
|
-
for i, _ in enumerate(self.events):
|
|
71
|
-
self.events[i]["properties"]["distinct_id"] = user_id
|
|
72
|
-
self.done()
|
|
73
|
-
|
|
74
|
-
def done(self):
|
|
75
|
-
if self.events:
|
|
76
|
-
pynt_requests.post(MIXPANEL_URL, json=self.events)
|
|
77
|
-
self.events = []
|
|
File without changes
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
from base64 import b64decode
|
|
2
|
-
import webbrowser
|
|
3
|
-
import uuid
|
|
4
|
-
import urllib.parse
|
|
5
|
-
import datetime
|
|
6
|
-
import time
|
|
7
|
-
import json
|
|
8
|
-
import os
|
|
9
|
-
|
|
10
|
-
from pyntcli.ui import ui_thread
|
|
11
|
-
from pyntcli.store import CredStore
|
|
12
|
-
from pyntcli.transport import pynt_requests
|
|
13
|
-
|
|
14
|
-
class LoginException(Exception):
|
|
15
|
-
pass
|
|
16
|
-
|
|
17
|
-
class Timeout(LoginException):
|
|
18
|
-
pass
|
|
19
|
-
|
|
20
|
-
class InvalidTokenInEnvVarsException(LoginException):
|
|
21
|
-
pass
|
|
22
|
-
|
|
23
|
-
PYNT_CREDENTIALS = "PYNT_CREDENTIALS"
|
|
24
|
-
|
|
25
|
-
class Login():
|
|
26
|
-
def __init__(self) -> None:
|
|
27
|
-
self.delay = 5
|
|
28
|
-
self.base_authorization_url = "https://pynt.io/login?"
|
|
29
|
-
self.poll_url = "https://n592meacjj.execute-api.us-east-1.amazonaws.com/default/cli_validate_login"
|
|
30
|
-
self.login_wait_period = (60 *3) #3 minutes
|
|
31
|
-
|
|
32
|
-
def create_login_request(self):
|
|
33
|
-
request_id = uuid.uuid4()
|
|
34
|
-
request_url = self.base_authorization_url + urllib.parse.urlencode({"request_id": request_id, "utm_source": "cli"})
|
|
35
|
-
webbrowser.open(request_url)
|
|
36
|
-
|
|
37
|
-
ui_thread.print(ui_thread.PrinterText("To continue, you need to log in to your account.")\
|
|
38
|
-
.with_line("You will now be redirected to the login page.") \
|
|
39
|
-
.with_line("") \
|
|
40
|
-
.with_line("If you are not automatically redirected, please click on the link provided below (or copy to your web browser)") \
|
|
41
|
-
.with_line(request_url))
|
|
42
|
-
return request_id
|
|
43
|
-
|
|
44
|
-
def get_token_using_request_id(self, request_id):
|
|
45
|
-
with ui_thread.spinner("Waiting...", "point"):
|
|
46
|
-
start = time.time()
|
|
47
|
-
while start + self.login_wait_period > time.time():
|
|
48
|
-
response = pynt_requests.get(self.poll_url, params={"request_id": request_id})
|
|
49
|
-
if response.status_code == 200:
|
|
50
|
-
return response.json()
|
|
51
|
-
time.sleep(self.delay)
|
|
52
|
-
raise Timeout()
|
|
53
|
-
|
|
54
|
-
def login(self):
|
|
55
|
-
id = self.create_login_request()
|
|
56
|
-
token = self.get_token_using_request_id(id)
|
|
57
|
-
with CredStore() as store:
|
|
58
|
-
store.put("token", token)
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
def refresh_request(refresh_token):
|
|
62
|
-
return pynt_requests.post("https://auth.pynt.io/default/refresh", json={"refresh_token": refresh_token})
|
|
63
|
-
|
|
64
|
-
def refresh_token():
|
|
65
|
-
token = None
|
|
66
|
-
with CredStore() as store:
|
|
67
|
-
token = store.get("token")
|
|
68
|
-
|
|
69
|
-
if not token:
|
|
70
|
-
Login().login()
|
|
71
|
-
|
|
72
|
-
access_token = token.get("access_token")
|
|
73
|
-
if access_token and not is_jwt_expired(access_token):
|
|
74
|
-
return
|
|
75
|
-
|
|
76
|
-
refresh = token.get("refresh_token", None)
|
|
77
|
-
if not refresh:
|
|
78
|
-
Login().login()
|
|
79
|
-
return
|
|
80
|
-
|
|
81
|
-
refresh_response = refresh_request(refresh)
|
|
82
|
-
if refresh_response.status_code != 200:
|
|
83
|
-
Login().login()
|
|
84
|
-
return
|
|
85
|
-
|
|
86
|
-
with CredStore() as store:
|
|
87
|
-
token["access_token"] = refresh_response.json()["token"]
|
|
88
|
-
store.put("token", token)
|
|
89
|
-
|
|
90
|
-
def decode_jwt(jwt_token):
|
|
91
|
-
splited = jwt_token.split(".")
|
|
92
|
-
if len(splited) != 3:
|
|
93
|
-
return None
|
|
94
|
-
|
|
95
|
-
return json.loads(b64decode(splited[1] + '=' * (-len(splited[1]) % 4)))
|
|
96
|
-
|
|
97
|
-
def user_id():
|
|
98
|
-
with CredStore() as store:
|
|
99
|
-
token = store.get("token")
|
|
100
|
-
if not token:
|
|
101
|
-
return None
|
|
102
|
-
|
|
103
|
-
decoded = decode_jwt(token["access_token"])
|
|
104
|
-
if not decoded:
|
|
105
|
-
return None
|
|
106
|
-
|
|
107
|
-
return decoded.get("sub", None)
|
|
108
|
-
|
|
109
|
-
return None
|
|
110
|
-
|
|
111
|
-
def is_jwt_expired(jwt_token):
|
|
112
|
-
decoded = decode_jwt(jwt_token)
|
|
113
|
-
if not decoded:
|
|
114
|
-
return True
|
|
115
|
-
|
|
116
|
-
exp = decoded.get("exp", None)
|
|
117
|
-
if not exp:
|
|
118
|
-
return True
|
|
119
|
-
|
|
120
|
-
return datetime.datetime.fromtimestamp(exp) < datetime.datetime.now() + datetime.timedelta(minutes=1)
|
|
121
|
-
|
|
122
|
-
def validate_creds_structure(data):
|
|
123
|
-
try:
|
|
124
|
-
creds = json.loads(data.replace("\n", ""))
|
|
125
|
-
token = creds.get("token", None)
|
|
126
|
-
if not token:
|
|
127
|
-
raise InvalidTokenInEnvVarsException()
|
|
128
|
-
if not isinstance(token, dict):
|
|
129
|
-
raise InvalidTokenInEnvVarsException()
|
|
130
|
-
|
|
131
|
-
refresh_token = token.get("refresh_token", None)
|
|
132
|
-
if not refresh_token:
|
|
133
|
-
raise InvalidTokenInEnvVarsException()
|
|
134
|
-
|
|
135
|
-
return token
|
|
136
|
-
except json.JSONDecodeError:
|
|
137
|
-
raise InvalidTokenInEnvVarsException()
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
def should_login():
|
|
141
|
-
env_creds = os.environ.get(PYNT_CREDENTIALS, None)
|
|
142
|
-
if env_creds:
|
|
143
|
-
validated_creds = validate_creds_structure(env_creds)
|
|
144
|
-
with CredStore() as store:
|
|
145
|
-
store.put("token", validated_creds)
|
|
146
|
-
|
|
147
|
-
with CredStore() as store:
|
|
148
|
-
token = store.get("token")
|
|
149
|
-
|
|
150
|
-
if not token or token == store.connector.default_value:
|
|
151
|
-
return True
|
|
152
|
-
|
|
153
|
-
if not token.get("refresh_token"):
|
|
154
|
-
return True
|
|
155
|
-
|
|
156
|
-
return False
|