Тестирование
Справочник
Функциональная тестовая среда для приложений Falcon и самого Falcon.
Модуль тестирования Falcon содержит различные тестовые классы и служебные функции для поддержки функционального тестирования как для приложений, основанных на Falcon, так и для самого фреймворка Falcon.
Тестовая среда поддерживает как unittest, так и pytest:
# -----------------------------------------------------------------
# unittest
# -----------------------------------------------------------------
from falcon import testing
import myapp
class MyTestCase(testing.TestCase):
def setUp(self):
super(MyTestCase, self).setUp()
# Assume the hypothetical `myapp` package has a
# function called `create()` to initialize and
# return a `falcon.API` instance.
self.app = myapp.create()
class TestMyApp(MyTestCase):
def test_get_message(self):
doc = {u'message': u'Hello world!'}
result = self.simulate_get('/messages/42')
self.assertEqual(result.json, doc)
# -----------------------------------------------------------------
# pytest
# -----------------------------------------------------------------
from falcon import testing
import pytest
import myapp
# Depending on your testing strategy and how your application
# manages state, you may be able to broaden the fixture scope
# beyond the default 'function' scope used in this example.
@pytest.fixture()
def client():
# Assume the hypothetical `myapp` package has a function called
# `create()` to initialize and return a `falcon.API` instance.
return testing.TestClient(myapp.create())
def test_get_message(client):
doc = {u'message': u'Hello world!'}
result = client.simulate_get('/messages/42')
assert result.json == doc
-
class falcon.testing.Result(iterable, status, headers)[source] -
Оборачивает результат имитированного запроса WSGI.
Параметры: -
status -
Строка HTTP-статуса, возвращённая в ответе
Тип: str
-
status_code -
Код HTTP-статуса из строки статуса
Тип: int
-
headers -
Нечувствительный к регистру словарь, содержащий все заголовки ответа, за исключением куки-файлов, к которым можно получить доступ через атрибут
cookies.Примечание
В настоящее время не поддерживается несколько одинаковых заголовков в ответе; не определено, какое значение будет «побеждать» и отображаться в
headers.Тип: CaseInsensitiveDict
-
Словарь значений
falcon.testing.Cookie, разобранных из ответа по имени.Тип: dict
-
encoding -
Кодировка текста тела ответа или
None, если кодировка не может быть определена.Тип: str
-
content -
Необработанное тело ответа или
bytes, если тело ответа было пустым.Тип: bytes
-
text -
Декодированное тело ответа типа
unicodeв Python 2.7 и типаstrв противном случае. Если тип содержимого не указывает кодировку, используется UTF-8.Тип: str
-
json -
Десериализованное тело JSON. Будет
None, если тело не содержит данных для десериализации. В противном случае, вызовет ошибку, если ответ не является валидным JSON.Тип: Сериализуемый JSON
-
-
class falcon.testing.Cookie(morsel)[source] -
Представляет куки, возвращенные имитированным запросом.
Параметры: morsel – Объект Morsel, из которого извлекаются данные куки.-
name -
Имя куки.
Тип: str
-
value -
Значение куки.
Тип: str
-
expires -
Маркер времени истечения срока действия куки или
None, если не указан.Тип: datetime.datetime
-
path -
Префикс пути, к которому ограничен доступ к куки, или
None, если не указан.Тип: str
-
domain -
Домен, к которому ограничен доступ к куки, или
None, если не указан.Тип: str
-
max_age -
Срок действия куки в секундах или
None, если не указан.Тип: int
-
secure -
Указывает, может ли куки передаваться только через HTTPS.
Тип: bool
-
http_only -
Указывает, может ли куки включаться только в нескриптовых запросах клиента.
Тип: bool
-
-
falcon.testing.simulate_request(app, method='GET', path='/', query_string=None, headers=None, body=None, json=None, file_wrapper=None, wsgierrors=None, params=None, params_csv=True, protocol='http', host='falconframework.org', remote_addr=None, extras=None)[source] -
Имитирует запрос к WSGI-приложению.
Выполняет запрос к WSGI-приложению. Использует
wsgiref.validateдля обеспечения того, что ответ является валидным WSGI.Ключевые аргументы: - app (callable) – WSGI-приложение для вызова
- method (str) – HTTP-метод для использования в запросе (по умолчанию: ‘GET’)
-
path (str) –
Путь URL для запроса (по умолчанию: ‘/’).
Примечание
Путь может содержать строку запроса. Однако ни
query_stringниparamsв этом случае не могут быть указаны. - protocol – Протокол для использования в схеме URL (по умолчанию: ‘http’)
-
params (dict) – Словарь параметров строки запроса, где каждый ключ — имя параметра, а каждое значение — либо
str, либо что-то, что может быть преобразовано вstr, или список таких значений. Еслиlist, значение будет преобразовано в строку значений, разделенных запятыми (например, ‘thing=1,2,3’). -
params_csv (bool) – Установите в
Falseдля кодирования значений списков в параметрах строки запроса, указав несколько экземпляров параметра (например, ‘thing=1&thing=2&thing=3’). В противном случае параметры будут закодированы как значения, разделенные запятыми (например, ‘thing=1,2,3’). По умолчаниюTrue. -
query_string (str) – Сырая строка запроса для включения в запрос (по умолчанию:
None). Если указано, переопределяетparams. -
headers (dict) – Дополнительные заголовки для включения в запрос (по умолчанию:
None) -
body (str) – Строка для отправки в качестве тела запроса. Принимает как байтовые строки, так и строки Unicode (по умолчанию:
None). Если предоставлена строка Unicode, она будет закодирована как UTF-8 в запросе. -
json (JSON serializable) – JSON-документ для сериализации в качестве тела запроса (по умолчанию:
None). Если указано, переопределяетbodyи заголовок Content-Type вheaders. -
file_wrapper (callable) – Функция, возвращающая итерируемый объект, который будет использоваться в качестве значения для wsgi.file_wrapper в среде (по умолчанию:
None). Это можно использовать для тестирования высокопроизводительной передачи файлов, когдаresp.streamустановлено в объект типа файла. - host (str) – Строка для использования в качестве имени хоста в полном квалифицированном URL запроса (по умолчанию: ‘falconframework.org’)
- remote_addr (str) – Строка для использования в качестве удаленного IP-адреса для запроса (по умолчанию: ‘127.0.0.1’)
-
wsgierrors (io) – Поток для использования в качестве wsgierrors (по умолчанию
sys.stderr) -
extras (dict) – Дополнительные переменные CGI для добавления в WSGI
environсловарь для запроса (по умолчанию:None)
Возвращает: Результат запроса
Тип возвращаемого значения:
-
falcon.testing.simulate_get(app, path, **kwargs)[source] -
Имитирует GET-запрос к WSGI-приложению.
Эквивалентно:
simulate_request(app, 'GET', path, **kwargs)
Параметры: - app (callable) – WSGI-приложение для вызова
-
path (str) –
Путь URL для запроса.
Примечание
Путь может содержать строку запроса. Однако ни
query_stringниparamsв этом случае не могут быть указаны.
Ключевые аргументы: -
params (dict) – Словарь параметров строки запроса, где каждый ключ — имя параметра, а каждое значение — либо
str, либо что-то, что может быть преобразовано вstr, или список таких значений. Еслиlist, значение будет преобразовано в строку значений, разделенных запятыми (например, ‘thing=1,2,3’). -
params_csv (bool) – Установите в
Falseдля кодирования значений списков в параметрах строки запроса, указав несколько экземпляров параметра (например, ‘thing=1&thing=2&thing=3’). В противном случае параметры будут закодированы как значения, разделенные запятыми (например, ‘thing=1,2,3’). По умолчаниюTrue. -
query_string (str) – Сырая строка запроса для включения в запрос (по умолчанию:
None). Если указано, переопределяетparams. -
headers (dict) – Дополнительные заголовки для включения в запрос (по умолчанию:
None) -
file_wrapper (callable) – Функция, возвращающая итерируемый объект, который будет использоваться в качестве значения для wsgi.file_wrapper в среде (по умолчанию:
None). Это можно использовать для тестирования высокопроизводительной передачи файлов, когдаresp.streamустановлено в объект типа файла. - protocol – Протокол для использования в схеме URL (по умолчанию: ‘http’)
- host (str) – Строка для использования в качестве имени хоста в полном квалифицированном URL запроса (по умолчанию: ‘falconframework.org’)
- remote_addr (str) – Строка для использования в качестве удаленного IP-адреса для запроса (по умолчанию: ‘127.0.0.1’)
-
extras (dict) – Дополнительные переменные CGI для добавления в WSGI
environсловарь для запроса (по умолчанию:None)
-
falcon.testing.simulate_head(app, path, **kwargs)[source] -
Имитирует запрос HEAD к WSGI-приложению.
Эквивалентно:
simulate_request(app, 'HEAD', path, **kwargs)
Параметры: - app (callable) – WSGI-приложение для вызова
-
path (str) –
Путь URL для запроса.
Примечание
Путь может содержать строку запроса. Однако
query_stringиparamsв этом случае задавать нельзя.
Ключевые аргументы: -
params (dict) – Словарь параметров строки запроса, где каждый ключ — имя параметра, а каждое значение — либо
str, либо что-то, что может быть преобразовано вstr, или список таких значений. Если значение являетсяlist, оно будет преобразовано в строку значений, разделённых запятыми (например, ‘thing=1,2,3’). -
params_csv (bool) – Устанавливается в
Falseдля кодирования списков значений в параметрах строки запроса, указав несколько экземпляров параметра (например, ‘thing=1&thing=2&thing=3’). В противном случае параметры будут закодированы как значения, разделённые запятыми (например, ‘thing=1,2,3’). По умолчаниюTrue. -
query_string (str) – Необработанная строка запроса для включения в запрос (по умолчанию:
None). Если указано, переопределяетparams. -
headers (dict) – Дополнительные заголовки для включения в запрос (по умолчанию:
None). - protocol – Протокол для использования в схеме URL (по умолчанию: ‘http’)
- host (str) – Строка для использования в качестве имени хоста части полностью квалифицированного URL-адреса запроса (по умолчанию: ‘falconframework.org’)
- remote_addr (str) – Строка для использования в качестве удалённого IP-адреса для запроса (по умолчанию: ‘127.0.0.1’)
-
extras (dict) – Дополнительные переменные CGI для добавления в WSGI
environсловарь запроса (по умолчанию:None).
-
falcon.testing.simulate_post(app, path, **kwargs)[source] -
Имитирует запрос POST к WSGI-приложению.
Эквивалентно:
simulate_request(app, 'POST', path, **kwargs)
Параметры: - app (callable) – WSGI-приложение для вызова
- path (str) – Путь URL для запроса
Ключевые аргументы: -
params (dict) – Словарь параметров строки запроса, где каждый ключ — имя параметра, а каждое значение — либо
str, либо что-то, что может быть преобразовано вstr, или список таких значений. Если значение являетсяlist, оно будет преобразовано в строку значений, разделённых запятыми (например, ‘thing=1,2,3’). -
params_csv (bool) – Устанавливается в
Falseдля кодирования списков значений в параметрах строки запроса, указав несколько экземпляров параметра (например, ‘thing=1&thing=2&thing=3’). В противном случае параметры будут закодированы как значения, разделённые запятыми (например, ‘thing=1,2,3’). По умолчаниюTrue. -
headers (dict) – Дополнительные заголовки для включения в запрос (по умолчанию:
None). -
body (str) – Строка для отправки в качестве тела запроса. Поддерживает как байтовые строки, так и строки Юникода (по умолчанию:
None). Если предоставлена строка Юникода, она будет закодирована как UTF-8 в запросе. -
json (JSON serializable) – JSON-документ для сериализации в качестве тела запроса (по умолчанию:
None). Если указано, переопределяетbodyи заголовок Content-Type вheaders. - protocol – Протокол для использования в схеме URL (по умолчанию: ‘http’)
- host (str) – Строка для использования в качестве имени хоста части полностью квалифицированного URL-адреса запроса (по умолчанию: ‘falconframework.org’)
- remote_addr (str) – Строка для использования в качестве удалённого IP-адреса для запроса (по умолчанию: ‘127.0.0.1’)
-
extras (dict) – Дополнительные переменные CGI для добавления в WSGI
environсловарь запроса (по умолчанию:None).
-
falcon.testing.simulate_put(app, path, **kwargs)[source] -
Имитирует запрос PUT к WSGI-приложению.
Эквивалентно:
simulate_request(app, 'PUT', path, **kwargs)
Параметры: - app (callable) – WSGI-приложение для вызова
- path (str) – Путь URL для запроса
Ключевые аргументы: -
params (dict) – Словарь параметров строки запроса, где каждый ключ — имя параметра, а каждое значение — либо
str, либо что-то, что может быть преобразовано вstr, или список таких значений. Если значение являетсяlist, оно будет преобразовано в строку значений, разделённых запятыми (например, ‘thing=1,2,3’). -
params_csv (bool) – Устанавливается в
Falseдля кодирования списков значений в параметрах строки запроса, указав несколько экземпляров параметра (например, ‘thing=1&thing=2&thing=3’). В противном случае параметры будут закодированы как значения, разделённые запятыми (например, ‘thing=1,2,3’). По умолчаниюTrue. -
headers (dict) – Дополнительные заголовки для включения в запрос (по умолчанию:
None). -
body (str) – Строка для отправки в качестве тела запроса. Поддерживает как байтовые строки, так и строки Юникода (по умолчанию:
None). Если предоставлена строка Юникода, она будет закодирована как UTF-8 в запросе. -
json (JSON serializable) – JSON-документ для сериализации в качестве тела запроса (по умолчанию:
None). Если указано, переопределяетbodyи заголовок Content-Type вheaders. - protocol – Протокол для использования в схеме URL (по умолчанию: ‘http’)
- host (str) – Строка для использования в качестве имени хоста части полностью квалифицированного URL-адреса запроса (по умолчанию: ‘falconframework.org’)
- remote_addr (str) – Строка для использования в качестве удалённого IP-адреса для запроса (по умолчанию: ‘127.0.0.1’)
-
extras (dict) – Дополнительные переменные CGI для добавления в WSGI
environсловарь запроса (по умолчанию:None).
-
falcon.testing.simulate_options(app, path, **kwargs)[source] -
Имитирует запрос OPTIONS к WSGI-приложению.
Эквивалентно:
simulate_request(app, 'OPTIONS', path, **kwargs)
Параметры: - app (callable) – WSGI-приложение, которое нужно вызвать
- path (str) – Путь URL-адреса запроса
Ключевые аргументы: -
params (dict) – Словарь параметров строки запроса, где каждый ключ — имя параметра, а каждое значение — либо
str, либо что-то, что может быть преобразовано вstr, или список таких значений. Если значение —list, оно будет преобразовано в строку значений, разделённых запятыми (например, «thing=1,2,3»). -
params_csv (bool) – Установите в
False, чтобы закодировать значения списков в параметрах строки запроса, указав несколько экземпляров параметра (например, «thing=1&thing=2&thing=3»). В противном случае параметры будут закодированы как значения, разделённые запятыми (например, «thing=1,2,3»). По умолчаниюTrue. -
headers (dict) – Дополнительные заголовки для включения в запрос (по умолчанию:
None) - protocol – Протокол для использования в схеме URL (по умолчанию: ‘http’)
- host (str) – Строка для использования в качестве имени хоста в полном квалифицированном URL-адресе запроса (по умолчанию: ‘falconframework.org’)
- remote_addr (str) – Строка, используемая в качестве удалённого IP-адреса для запроса (по умолчанию: ‘127.0.0.1’)
-
extras (dict) – Дополнительные переменные CGI, которые нужно добавить в словарь WSGI
environдля запроса (по умолчанию:None)
-
falcon.testing.simulate_patch(app, path, **kwargs)[source] -
Имитирует запрос PATCH к WSGI-приложению.
Эквивалентно:
simulate_request(app, 'PATCH', path, **kwargs)
Параметры: - app (callable) – WSGI-приложение, которое нужно вызвать
- path (str) – Путь URL-адреса запроса
Ключевые аргументы: -
params (dict) – Словарь параметров строки запроса, где каждый ключ — имя параметра, а каждое значение — либо
str, либо что-то, что может быть преобразовано вstr, или список таких значений. Если значение —list, оно будет преобразовано в строку значений, разделённых запятыми (например, «thing=1,2,3»). -
params_csv (bool) – Установите в
False, чтобы закодировать значения списков в параметрах строки запроса, указав несколько экземпляров параметра (например, «thing=1&thing=2&thing=3»). В противном случае параметры будут закодированы как значения, разделённые запятыми (например, «thing=1,2,3»). По умолчаниюTrue. -
headers (dict) – Дополнительные заголовки для включения в запрос (по умолчанию:
None) -
body (str) – Строка для отправки в теле запроса. Принимает как байтовые строки, так и строки Юникода (по умолчанию:
None). Если предоставлена строка Юникода, она будет закодирована как UTF-8 в запросе. -
json (JSON serializable) – JSON-документ для сериализации как тела запроса (по умолчанию:
None). Если указано, переопределяетbodyи заголовок Content-Type вheaders. - protocol – Протокол для использования в схеме URL (по умолчанию: ‘http’)
- host (str) – Строка для использования в качестве имени хоста в полном квалифицированном URL-адресе запроса (по умолчанию: ‘falconframework.org’)
- remote_addr (str) – Строка, используемая в качестве удалённого IP-адреса для запроса (по умолчанию: ‘127.0.0.1’)
-
extras (dict) – Дополнительные переменные CGI, которые нужно добавить в словарь WSGI
environдля запроса (по умолчанию:None)
-
falcon.testing.simulate_delete(app, path, **kwargs)[source] -
Имитирует запрос DELETE к WSGI-приложению.
Эквивалентно:
simulate_request(app, 'DELETE', path, **kwargs)
Параметры: - app (callable) – WSGI-приложение, которое нужно вызвать
- path (str) – Путь URL-адреса запроса
Ключевые аргументы: -
params (dict) – Словарь параметров строки запроса, где каждый ключ — имя параметра, а каждое значение — либо
str, либо что-то, что может быть преобразовано вstr, или список таких значений. Если значение —list, оно будет преобразовано в строку значений, разделённых запятыми (например, «thing=1,2,3»). -
params_csv (bool) – Установите в
False, чтобы закодировать значения списков в параметрах строки запроса, указав несколько экземпляров параметра (например, «thing=1&thing=2&thing=3»). В противном случае параметры будут закодированы как значения, разделённые запятыми (например, «thing=1,2,3»). По умолчаниюTrue. -
headers (dict) – Дополнительные заголовки для включения в запрос (по умолчанию:
None) - protocol – Протокол для использования в схеме URL (по умолчанию: ‘http’)
- host (str) – Строка для использования в качестве имени хоста в полном квалифицированном URL-адресе запроса (по умолчанию: ‘falconframework.org’)
- remote_addr (str) – Строка, используемая в качестве удалённого IP-адреса для запроса (по умолчанию: ‘127.0.0.1’)
-
extras (dict) – Дополнительные переменные CGI, которые нужно добавить в словарь WSGI
environдля запроса (по умолчанию:None)
-
class falcon.testing.TestClient(app, headers=None)[source] -
Имитирует запросы к WSGI-приложению.
Этот класс предоставляет контекстный обёртку для функций тестирования
simulate_*Falcon. Он позволяет заменить это:simulate_get(app, '/messages') simulate_head(app, '/messages')
на это:
client = TestClient(app) client.simulate_get('/messages') client.simulate_head('/messages')Примечание
Все методы вызывают
self.simulate_request()для удобного переопределения подготовки запросов дочерними классами.Параметры: app (callable) – WSGI-приложение, на которое нацелены имитируемые запросы Ключевые аргументы: headers (dict) – Значения по умолчанию для заголовков каждого запроса (по умолчанию None). Эти значения по умолчанию могут быть переопределены путём передачи значений для тех же заголовков одному из методовsimulate_*().-
simulate_delete(path='/', **kwargs)[source] -
Имитирует запрос DELETE к WSGI-приложению.
(См. также:
falcon.testing.simulate_delete())
-
simulate_get(path='/', **kwargs)[source] -
Имитирует запрос GET к WSGI-приложению.
(См. также:
falcon.testing.simulate_get())
-
simulate_head(path='/', **kwargs)[source] -
Имитирует запрос HEAD к WSGI-приложению.
(См. также:
falcon.testing.simulate_head())
-
simulate_options(path='/', **kwargs)[source] -
Имитирует запрос OPTIONS к WSGI-приложению.
(См. также:
falcon.testing.simulate_options())
-
simulate_patch(path='/', **kwargs)[source] -
Имитирует запрос PATCH к WSGI-приложению.
(См. также:
falcon.testing.simulate_patch())
-
simulate_post(path='/', **kwargs)[source] -
Имитирует запрос POST к WSGI-приложению.
(См. также:
falcon.testing.simulate_post())
-
simulate_put(path='/', **kwargs)[source] -
Имитирует запрос PUT к WSGI-приложению.
(См. также:
falcon.testing.simulate_put())
-
simulate_request(*args, **kwargs)[source] -
Имитирует запрос к WSGI-приложению.
Оборачивает
falcon.testing.simulate_request()для выполнения прямого WSGI-запроса кself.app. Эквивалентно:falcon.testing.simulate_request(self.app, *args, **kwargs)
-
-
class falcon.testing.TestCase(methodName='runTest')[source] -
Расширяет
unittestдля поддержки функционального тестирования WSGI.Примечание
Если доступно, использует
testtoolsвместоunittest.Этот базовый класс предоставляет дополнительное управление для тестовых случаев в стиле unittest, чтобы помочь имитировать WSGI-вызовы без необходимости запуска реального веб-сервера. Различные методы моделирования унаследованы от
falcon.testing.TestClient.Просто наследуйте от этого класса в ваших тестовых классах вместо
unittest.TestCaseилиtesttools.TestCase.-
app -
WSGI-приложение, на которое нацелены имитируемые запросы (по умолчанию:
falcon.API()). При тестировании вашего приложения вам необходимо установить его на вашу собственную экземплярfalcon.API. Например:from falcon import testing import myapp class MyTestCase(testing.TestCase): def setUp(self): super(MyTestCase, self).setUp() # Assume the hypothetical `myapp` package has a # function called `create()` to initialize and # return a `falcon.API` instance. self.app = myapp.create() class TestMyApp(MyTestCase): def test_get_message(self): doc = {u'message': u'Hello world!'} result = self.simulate_get('/messages/42') self.assertEqual(result.json, doc)Тип: object
-
setUp()[source] -
Метод-обработчик для настройки тестовой среды перед её использованием.
-
-
class falcon.testing.SimpleTestResource(status=None, body=None, json=None, headers=None)[source] -
Модель ресурса для функционального тестирования компонентов фреймворка.
Этот класс реализует простой тестовый ресурс, который можно расширять по мере необходимости для тестирования middleware, хуков и самого фреймворка Falcon.
Реализованы только обработчики
on_get()иon_post(); при перезаписи этих обработчиков или добавлении дополнительных обработчиков в дочерних классах, их можно декорировать хукомfalcon.testing.capture_responder_args()для захвата аргументов req, resp и params, передаваемых обработчику. Обработчики также могут быть декорированы хукомfalcon.testing.set_resp_defaults()для установки свойств resp по умолчанию status, body и header.Ключевые аргументы: - status (str) – Строка состояния по умолчанию для использования в ответах
- body (str) – Строка тела по умолчанию для использования в ответах
- json (сериализуемое в JSON) – Документ JSON по умолчанию для использования в ответах. Будет сериализован в строку и закодирован в UTF-8. Можно указать либо json, либо body, но не оба.
- headers (dict) – Набор дополнительных заголовков по умолчанию для включения в ответы
-
called -
Вызван ли req/resp?
Тип: bool
-
captured_req -
Последний объект Request, переданный в любой из методов обработчиков.
Тип: falcon.Request
-
captured_resp -
Последний объект Response, переданный в любой из методов обработчиков.
Тип: falcon.Response
-
captured_kwargs -
Последний словарь kwargs, помимо
reqиresp, которые были переданы в любой из методов обработчиков.Тип: dict
-
class falcon.testing.StartResponseMock[source] -
Объект-модель, представляющий вызываемый объект WSGI
start_response.-
call_count -
Количество вызовов
start_response.Тип: int
-
status -
Строка HTTP-статуса, например, «785 TPS Cover Sheet not attached».
Тип: str
-
headers -
Список исходных заголовков, переданных в
start_response, согласно PEP-333.Тип: list
-
headers_dict -
Заголовки в виде объекта, нечувствительного к регистру, подобного
dict, вместоlist.Тип: dict
-
-
falcon.testing.capture_responder_args(req, resp, resource, params)[source] -
Хук для захвата аргументов обработчика.
Добавляет следующие атрибуты к классу ресурса обработанного обработчика:
- captured_req
- captured_resp
- captured_kwargs
-
falcon.testing.rand_string(min, max)[source] -
Возвращает случайную строку случайной длины.
Параметры:
-
falcon.testing.create_environ(path='/', query_string='', protocol='HTTP/1.1', scheme='http', host='falconframework.org', port=None, headers=None, app='', body='', method='GET', wsgierrors=None, file_wrapper=None, remote_addr=None)[source] -
Создаёт эмуляцию окружения PEP-3333
dictдля моделирования WSGI-запросов.Ключевые аргументы: - path (str) – Путь для запроса (по умолчанию ‘/’)
- query_string (str) – Строка запроса для эмуляции, без ведущего ‘?’ (по умолчанию ‘’)
- protocol (str) – HTTP-протокол для эмуляции (по умолчанию ‘HTTP/1.1’). Если установлено ‘HTTP/1.0’, заголовок Host не будет добавлен в среду.
- scheme (str) – Схема URL, либо ‘http’, либо ‘https’ (по умолчанию ‘http’)
- host (str) – Имя хоста для запроса (по умолчанию ‘falconframework.org’)
- port (str) – TCP-порт для эмуляции. По умолчанию используется стандартный порт для заданной схемы (т.е., 80 для ‘http’ и 443 для ‘https’).
-
headers (dict) – Заголовки в виде
dictили итерируемого объекта, возвращающего пары (ключ, значение)tuple -
app (str) – Значение для переменной среды
SCRIPT_NAME, описанной в PEP-333: «Начальная часть пути URL запроса, соответствующая объекту приложения, так что приложение знает своё виртуальное "местоположение". Может быть пустой строкой, если приложение соответствует "корню" сервера.» (по умолчанию ‘’) - body (str) – Тело запроса (по умолчанию ‘’). Принимает как байтовые строки, так и строки Unicode. Строки Unicode кодируются как UTF-8 в запросе.
- method (str) – HTTP-метод для использования (по умолчанию ‘GET’)
-
wsgierrors (io) – Поток, используемый в качестве wsgierrors (по умолчанию
sys.stderr) - file_wrapper – Вызываемый объект, возвращающий итерируемый объект, используемый в качестве значения для wsgi.file_wrapper в окружении.
- remote_addr (str) – Адрес удалённого клиента для запроса (по умолчанию ‘127.0.0.1’)
-
falcon.testing.redirected(stdout=<_io.TextIOWrapper name='<stdout>' mode='w' encoding='UTF-8'>, stderr=<_io.TextIOWrapper name='<stderr>' mode='w' encoding='UTF-8'>)[source] -
Управляемый контекст для временного перенаправления стандартного вывода или стандартного потока ошибок.
Например:
- with redirected(stderr=os.devnull):
- …
-
falcon.testing.closed_wsgi_iterable(iterable)[source] -
Оборачивает итерируемый объект, чтобы гарантировать вызов его метода
close().Оборачивает предоставленный
iterableв итератор, используя циклfor, как показано в примере PEP-3333 сервера/шлюза. В заключение, если итерируемый объект имеет методclose(), он вызывается при возникновении исключения или исчерпании итерации.Кроме того, первая байтовая строка, возвращаемая итерацией, если есть, предварительно извлекается перед возвратом обернутого итератора, чтобы убедиться, что функция WSGI
start_responseвызывается даже если WSGI-приложение является генератором.Параметры: iterable (iterable) – Итерируемый объект, возвращающий ноль или более байтовых строк, в соответствии с PEP-3333 Возвращает: Итератор, возвращающий те же байтовые строки, что и iterableТип возвращаемого значения: итератор
© 2019 by Falcon contributors
Licensed under the Apache License, Version 2.0.
https://falcon.readthedocs.io/en/2.0.0/api/testing.html