from server.schemas.web_search_engine import (
WebSearchEngineCreateRequestDTO,
WebSearchEngineUpdateRequestDTO,
)
def test_web_search_engine_create_allows_empty_search_url():
"""Public engines may rely on built-in default URLs."""
request = WebSearchEngineCreateRequestDTO(
space_id="space-a",
search_engine_name="serper",
search_api_key="secret",
search_url="",
)
assert request.search_url == ""
def test_web_search_engine_update_allows_empty_search_url():
"""Updating a public engine should allow clearing URL to use defaults."""
request = WebSearchEngineUpdateRequestDTO(
space_id="space-a",
web_search_engine_id=1,
search_url="",
)
assert request.search_url == ""
def test_web_search_engine_create_service_defaults_omitted_search_url():
"""Create service should persist empty search_url when the request omits it."""
from server.deepsearch.core.manager.web_search_engine_service import WebSearchEngineService
class FakeRepository:
def __init__(self):
self.created = None
def get_by_name(self, space_id, search_engine_name):
return None
def create(self, model):
model.web_search_engine_id = 1
self.created = model
repository = FakeRepository()
service = WebSearchEngineService(repository)
request = WebSearchEngineCreateRequestDTO(
space_id="space",
search_engine_name="serper",
search_api_key="key",
)
response = service.create_web_search_engine(request)
assert response.web_search_engine_id == 1
assert repository.created.search_url == ""