Spec-Zone.ru › Falcon 2.0

Тестирование

Справочник

Функциональная тестовая среда для приложений 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.

Параметры:
  • iterable (iterable) – Итерируемый объект, возвращающий ноль или более байтовых строк, в соответствии с PEP-3333
  • status (str) – Строка HTTP-статуса, включая код статуса и сообщение
  • headers (list) – Список кортежей (имя_заголовка, значение_заголовка), в соответствии с PEP-3333
status

Строка HTTP-статуса, возвращённая в ответе

Тип: str
status_code

Код HTTP-статуса из строки статуса

Тип: int
headers

Нечувствительный к регистру словарь, содержащий все заголовки ответа, за исключением куки-файлов, к которым можно получить доступ через атрибут cookies.

Примечание

В настоящее время не поддерживается несколько одинаковых заголовков в ответе; не определено, какое значение будет «побеждать» и отображаться в headers.

Тип: CaseInsensitiveDict
cookies

Словарь значений 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)
Возвращает:

Результат запроса

Тип возвращаемого значения:

Result

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)
END_OF_DOCUMENT_MARKER
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]

Возвращает случайную строку случайной длины.

Параметры:
  • min (int) – Минимальная длина возвращаемой строки, включая
  • max (int) – Максимальная длина возвращаемой строки, включая
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API