diff --git a/keyring/backends/macOS/__init__.py b/keyring/backends/macOS/__init__.py index 4a33b8e0..ca91bc98 100644 --- a/keyring/backends/macOS/__init__.py +++ b/keyring/backends/macOS/__init__.py @@ -28,6 +28,8 @@ def priority(cls): """ if platform.system() != 'Darwin': raise RuntimeError("macOS required") + if 'api' not in globals(): + raise RuntimeError("Security API unavailable") return 5 def set_password(self, service, username, password): diff --git a/tests/backends/test_macOS.py b/tests/backends/test_macOS.py index 5d1fd5b0..5aae6336 100644 --- a/tests/backends/test_macOS.py +++ b/tests/backends/test_macOS.py @@ -1,16 +1,14 @@ -import sys - import pytest +import keyring from keyring.testing.backend import BackendBasicTests from keyring.backends import macOS -def is_osx_keychain_supported(): - return sys.platform in ('mac', 'darwin') - - -@pytest.mark.skipif(not is_osx_keychain_supported(), reason="Needs macOS") +@pytest.mark.skipif( + not keyring.backends.Windows.WinVaultKeyring.viable, + reason="macOS backend not viable", +) class TestOSXKeychain(BackendBasicTests): def init_keyring(self): return macOS.Keyring()