40 lines
1.2 KiB
Python
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 |