mirror of
https://github.com/osm-search/Nominatim.git
synced 2024-11-29 08:36:24 +03:00
996026e5ed
This is a regression against the PHP version. Fixes #3138.
56 lines
1.4 KiB
Python
56 lines
1.4 KiB
Python
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
#
|
|
# This file is part of Nominatim. (https://nominatim.org)
|
|
#
|
|
# Copyright (C) 2023 by the Nominatim developer community.
|
|
# For a full list of authors see the git log.
|
|
"""
|
|
Provides dummy implementations of ASGIAdaptor for testing.
|
|
"""
|
|
from collections import namedtuple
|
|
|
|
import nominatim.api.v1.server_glue as glue
|
|
from nominatim.config import Configuration
|
|
|
|
class FakeError(BaseException):
|
|
|
|
def __init__(self, msg, status):
|
|
self.msg = msg
|
|
self.status = status
|
|
|
|
def __str__(self):
|
|
return f'{self.status} -- {self.msg}'
|
|
|
|
FakeResponse = namedtuple('FakeResponse', ['status', 'output', 'content_type'])
|
|
|
|
class FakeAdaptor(glue.ASGIAdaptor):
|
|
|
|
def __init__(self, params=None, headers=None, config=None):
|
|
self.params = params or {}
|
|
self.headers = headers or {}
|
|
self._config = config or Configuration(None)
|
|
|
|
|
|
def get(self, name, default=None):
|
|
return self.params.get(name, default)
|
|
|
|
|
|
def get_header(self, name, default=None):
|
|
return self.headers.get(name, default)
|
|
|
|
|
|
def error(self, msg, status=400):
|
|
return FakeError(msg, status)
|
|
|
|
|
|
def create_response(self, status, output, num_results):
|
|
return FakeResponse(status, output, self.content_type)
|
|
|
|
|
|
def base_uri(self) -> str:
|
|
return 'http://test'
|
|
|
|
def config(self):
|
|
return self._config
|
|
|