From 389f625a4538f7690b376930028e29119d287af9 Mon Sep 17 00:00:00 2001 From: colyerdeng Date: Tue, 28 Oct 2025 18:17:45 +0800 Subject: [PATCH] fix(core): support entry points provider in get_notifier and add related test - Fix get_notifier logic to ensure providers from entry points are correctly retrieved. - Add test_get_notifier_entry_points to mock and verify entry points provider support. --- notifiers/core.py | 2 +- tests/test_core.py | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) 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"""