40 lines
1.4 KiB
Python
40 lines
1.4 KiB
Python
import pytest
|
|
from unittest import mock
|
|
from pgcli import auth
|
|
|
|
|
|
@pytest.mark.parametrize("enabled,call_count", [(True, 1), (False, 0)])
|
|
def test_keyring_initialize(enabled, call_count):
|
|
logger = mock.MagicMock()
|
|
|
|
with mock.patch("importlib.import_module", return_value=True) as import_method:
|
|
auth.keyring_initialize(enabled, logger=logger)
|
|
assert import_method.call_count == call_count
|
|
|
|
|
|
def test_keyring_get_password_ok():
|
|
with mock.patch("pgcli.auth.keyring", return_value=mock.MagicMock()):
|
|
with mock.patch("pgcli.auth.keyring.get_password", return_value="abc123"):
|
|
assert auth.keyring_get_password("test") == "abc123"
|
|
|
|
|
|
def test_keyring_get_password_exception():
|
|
with mock.patch("pgcli.auth.keyring", return_value=mock.MagicMock()):
|
|
with mock.patch(
|
|
"pgcli.auth.keyring.get_password", side_effect=Exception("Boom!")
|
|
):
|
|
assert auth.keyring_get_password("test") == ""
|
|
|
|
|
|
def test_keyring_set_password_ok():
|
|
with mock.patch("pgcli.auth.keyring", return_value=mock.MagicMock()):
|
|
with mock.patch("pgcli.auth.keyring.set_password"):
|
|
auth.keyring_set_password("test", "abc123")
|
|
|
|
|
|
def test_keyring_set_password_exception():
|
|
with mock.patch("pgcli.auth.keyring", return_value=mock.MagicMock()):
|
|
with mock.patch(
|
|
"pgcli.auth.keyring.set_password", side_effect=Exception("Boom!")
|
|
):
|
|
auth.keyring_set_password("test", "abc123")
|