diff --git a/plover_1password/__init__.py b/plover_1password/__init__.py index 90b7e9e..9f1e37f 100644 --- a/plover_1password/__init__.py +++ b/plover_1password/__init__.py @@ -4,8 +4,9 @@ A package dealing with: - retrieving secrets from 1Password and outputting them """ -from .__version__ import __version__ __all__ = [ "__version__" ] + +from .__version__ import __version__ diff --git a/plover_1password/__version__.py b/plover_1password/__version__.py index f319cda..192903f 100644 --- a/plover_1password/__version__.py +++ b/plover_1password/__version__.py @@ -1,4 +1,5 @@ """ Version attribute """ -__version__ = "0.3.11" + +__version__ = "0.3.12" diff --git a/plover_1password/extension.py b/plover_1password/extension.py index 7b849d7..a3e02f0 100644 --- a/plover_1password/extension.py +++ b/plover_1password/extension.py @@ -4,6 +4,7 @@ - https://plover.readthedocs.io/en/latest/plugin-dev/extensions.html - https://plover.readthedocs.io/en/latest/plugin-dev/meta.html """ + import asyncio import platform from typing import Callable @@ -30,6 +31,7 @@ class OnePassword: Extension class that also registers a meta plugin. The meta deals with retrieving secrets from 1Password """ + _client: Client _engine: StenoEngine _platform: str diff --git a/plover_1password/secret/__init__.py b/plover_1password/secret/__init__.py index 5cf14b6..fdb00db 100644 --- a/plover_1password/secret/__init__.py +++ b/plover_1password/secret/__init__.py @@ -4,10 +4,11 @@ A package dealing with: - retrieving and resolving a secret from a 1Password vault """ -from .client import init_client -from .resolver import resolve __all__ = [ "init_client", "resolve" ] + +from .client import init_client +from .resolver import resolve diff --git a/plover_1password/secret/client.py b/plover_1password/secret/client.py index e28c919..6ddf49a 100644 --- a/plover_1password/secret/client.py +++ b/plover_1password/secret/client.py @@ -1,6 +1,7 @@ """ Module to initialise a 1Password client """ + from onepassword.client import Client from ..__version__ import __version__ diff --git a/plover_1password/secret/error.py b/plover_1password/secret/error.py index 7d41465..53dd26f 100644 --- a/plover_1password/secret/error.py +++ b/plover_1password/secret/error.py @@ -3,6 +3,7 @@ but not handled in the Python SDK. See: https://github.com/1Password/onepassword-sdk-python/tree/main/src/onepassword/lib """ + _SERVICE_ACCOUNT_TOKEN_INVALID_ERROR: str = ( "invalid service account token, please make sure you provide a valid " "service account token as parameter: service account deserialization " diff --git a/plover_1password/secret/resolver.py b/plover_1password/secret/resolver.py index 4ff09fd..97c5028 100644 --- a/plover_1password/secret/resolver.py +++ b/plover_1password/secret/resolver.py @@ -2,6 +2,7 @@ Module to resolve a given 1Password secret reference URI to a secret contained in a vault. """ + from onepassword.client import Client from . import error diff --git a/plover_1password/secret_reference/__init__.py b/plover_1password/secret_reference/__init__.py index e02945e..fcc23fa 100644 --- a/plover_1password/secret_reference/__init__.py +++ b/plover_1password/secret_reference/__init__.py @@ -4,8 +4,9 @@ A package dealing with: - expanding local environment variables within a secret reference URI """ -from .expander import expand_env_vars __all__ = [ "expand_env_vars" ] + +from .expander import expand_env_vars diff --git a/plover_1password/secret_reference/expander.py b/plover_1password/secret_reference/expander.py index d443f6d..f2c14d2 100644 --- a/plover_1password/secret_reference/expander.py +++ b/plover_1password/secret_reference/expander.py @@ -2,6 +2,7 @@ Expander - a module for dealing with expansion of ENV vars in a secret reference URI. """ + import os from typing import Callable diff --git a/plover_1password/service_account/__init__.py b/plover_1password/service_account/__init__.py index 2452a68..3ddf3fb 100644 --- a/plover_1password/service_account/__init__.py +++ b/plover_1password/service_account/__init__.py @@ -3,8 +3,8 @@ functionality """ -from .token import get_token - __all__ = [ "get_token" ] + +from .token import get_token diff --git a/plover_1password/service_account/token.py b/plover_1password/service_account/token.py index d57435a..4b5e98e 100644 --- a/plover_1password/service_account/token.py +++ b/plover_1password/service_account/token.py @@ -2,6 +2,7 @@ Token - Module concerning retrieving a token value for a 1Password Service Account """ + import os from typing import ( Callable, diff --git a/plover_1password/shell_command/__init__.py b/plover_1password/shell_command/__init__.py index d4fd044..498b286 100644 --- a/plover_1password/shell_command/__init__.py +++ b/plover_1password/shell_command/__init__.py @@ -4,8 +4,9 @@ A package dealing with: - resolve the platform-appropriate command to fetch environment variables """ -from .resolver import resolve __all__ = [ "resolve" ] + +from .resolver import resolve diff --git a/plover_1password/shell_command/resolver.py b/plover_1password/shell_command/resolver.py index 6bf73c4..cf565cb 100644 --- a/plover_1password/shell_command/resolver.py +++ b/plover_1password/shell_command/resolver.py @@ -2,6 +2,7 @@ Resolver - a module for resolving the platform-appropriate command to fetch environment variables. """ + import os from typing import Callable diff --git a/test/secret/conftest.py b/test/secret/conftest.py new file mode 100644 index 0000000..88a0227 --- /dev/null +++ b/test/secret/conftest.py @@ -0,0 +1,28 @@ +import pytest + + +@pytest.fixture() +def mock_client(mocker): + async_mock = mocker.AsyncMock() + mocker.patch( + "onepassword.client.Client.authenticate", + return_value=async_mock + ) + + # REF: https://stackoverflow.com/a/8294654/567863 + def raise_(exc): + raise exc + + # REF: https://stackoverflow.com/a/44701916/567863 + def _method(error_message="", return_value=None): + if error_message: + async_mock.secrets.resolve.side_effect = ( + lambda _return_value: raise_(Exception(error_message)) + ) + + if return_value: + async_mock.secrets.resolve.return_value = return_value + + return async_mock + + return _method diff --git a/test/secret/test_secret.py b/test/secret/test_secret.py index d02b889..3dc0555 100644 --- a/test/secret/test_secret.py +++ b/test/secret/test_secret.py @@ -3,32 +3,6 @@ from plover_1password import secret -@pytest.fixture() -def mock_client(mocker): - async_mock = mocker.AsyncMock() - mocker.patch( - "onepassword.client.Client.authenticate", - return_value=async_mock - ) - - # REF: https://stackoverflow.com/a/8294654/567863 - def raise_(exc): - raise exc - - # REF: https://stackoverflow.com/a/44701916/567863 - def _method(error_message="", return_value=None): - if error_message: - async_mock.secrets.resolve.side_effect = ( - lambda _return_value: raise_(Exception(error_message)) - ) - - if return_value: - async_mock.secrets.resolve.return_value = return_value - - return async_mock - - return _method - async def test_initialising_a_client(mock_client): assert await secret.init_client("service_account_token") == mock_client() diff --git a/test/shell_command/conftest.py b/test/shell_command/conftest.py new file mode 100644 index 0000000..698854e --- /dev/null +++ b/test/shell_command/conftest.py @@ -0,0 +1,9 @@ +import pytest + + +@pytest.fixture() +def bash_command(): + def _method(shell): + return lambda env_var: f"{shell} -ic 'echo {env_var}'" + + return _method diff --git a/test/shell_command/test_shell_command.py b/test/shell_command/test_shell_command.py index ddb147d..a2881a0 100644 --- a/test/shell_command/test_shell_command.py +++ b/test/shell_command/test_shell_command.py @@ -3,12 +3,6 @@ from plover_1password import shell_command -@pytest.fixture() -def bash_command(): - def _method(shell): - return lambda env_var: f"{shell} -ic 'echo {env_var}'" - - return _method def test_resolve_shell_command_for_windows(powershell_command): # REF: https://stackoverflow.com/a/20059029/567863