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