proxy-pool/tests/unit/test_plugin_discovery.py

40 lines
1.2 KiB
Python

from proxy_pool.config import Settings, DatabaseSettings
from proxy_pool.plugins.discovery import discover_plugins
from proxy_pool.plugins.registry import PluginRegistry
def test_discovers_builtin_parsers():
settings = Settings(
secret_key="test",
db=DatabaseSettings(url="postgresql+asyncpg://localhost/test"),
)
registry = PluginRegistry()
discover_plugins("proxy_pool.plugins.builtin.parsers", registry, settings)
assert "plaintext" in registry.parsers
def test_discovers_builtin_checkers():
settings = Settings(
secret_key="test",
db=DatabaseSettings(url="postgresql+asyncpg://localhost/test"),
)
registry = PluginRegistry()
discover_plugins("proxy_pool.plugins.builtin.checkers", registry, settings)
assert len(registry.checkers) > 0
assert registry.checkers[0].name == "tcp_connect"
def test_skips_unconfigured_notifiers():
settings = Settings(
secret_key="test",
db=DatabaseSettings(url="postgresql+asyncpg://localhost/test"),
)
registry = PluginRegistry()
discover_plugins("proxy_pool.plugins.builtin.notifiers", registry, settings)
assert len(registry.notifiers) == 0