From 1dfd2fa4d49e3fbccdb09e07dfda31c2b01da659 Mon Sep 17 00:00:00 2001 From: "Jason R. Coombs" Date: Wed, 24 Nov 2021 19:36:02 -0500 Subject: [PATCH] Only run macOS backend tests when the backend is viable. Fixes #529. Fixes #547. --- keyring/backends/macOS/__init__.py | 2 ++ tests/backends/test_macOS.py | 12 +++++------- 2 files changed, 7 insertions(+), 7 deletions(-) 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..6dbea271 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.macOS.Keyring.viable, + reason="macOS backend not viable", +) class TestOSXKeychain(BackendBasicTests): def init_keyring(self): return macOS.Keyring()