diff --git a/notifiers/core.py b/notifiers/core.py index 1a640341..a03f0159 100644 --- a/notifiers/core.py +++ b/notifiers/core.py @@ -333,7 +333,7 @@ def get_notifier(provider_name: str, strict: bool = False) -> Provider: providers = get_all_providers() if provider_name in providers: log.debug("found a match for '%s', returning", provider_name) - return _all_providers[provider_name]() + return providers[provider_name]() if strict: raise NoSuchNotifierError(name=provider_name) return None diff --git a/tests/test_core.py b/tests/test_core.py index 6fe0fdae..89508a7b 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -89,6 +89,18 @@ def test_get_notifier(self, mock_provider): assert p assert isinstance(p, Provider) + def test_get_notifier_entry_points(self, mock_provider, monkeypatch): + from notifiers import get_notifier + + def fake_entry_points(_=None): + return {"dummy": type(mock_provider)} + + monkeypatch.setattr("notifiers.core.get_providers_from_entry_points", fake_entry_points) + + p = get_notifier("dummy") + assert p + assert isinstance(p, type(mock_provider)) + def test_all_providers(self, mock_provider, monkeypatch): """Test ``all_providers()`` helper function"""