Files
LangBot/tests/unit_tests/utils/test_runner.py
huanghuoguoguo ed02ac4710 fix(utils): classify runner URLs safely (#2191)
* fix(utils): classify runner URLs safely

* fix(utils): keep runner parse failures unknown
2026-05-16 11:28:34 +08:00

47 lines
1.2 KiB
Python

import pytest
from langbot.pkg.utils.runner import RunnerCategory, get_runner_category
@pytest.mark.parametrize(
'runner_url',
[
'api.dify.ai/v1',
'localhost:7860',
'https:///v1',
'https://',
'https://exa mple.com',
'http://[::1',
'http://localhost:bad',
],
)
def test_get_runner_category_returns_unknown_for_invalid_urls(runner_url):
assert get_runner_category('dify-service-api', runner_url) == RunnerCategory.UNKNOWN
@pytest.mark.parametrize(
'runner_url',
[
'http://localhost:7860',
'http://127.0.0.1:7860',
'http://10.0.0.1:7860',
'http://172.16.0.1:7860',
'http://172.31.255.255:7860',
'http://192.168.1.20:7860',
'http://[::1]:7860',
],
)
def test_get_runner_category_detects_local_hosts_with_ipaddress(runner_url):
assert get_runner_category('langflow-api', runner_url) == RunnerCategory.LOCAL
@pytest.mark.parametrize(
'runner_url',
[
'http://10.evil.com',
'http://192.168.example.com',
],
)
def test_get_runner_category_does_not_treat_private_ip_prefix_domains_as_local(runner_url):
assert get_runner_category('langflow-api', runner_url) == RunnerCategory.CLOUD