Spec-Zone.ru › Falcon 1.2

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

Справочник

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

str – Строка HTTP статуса, указанная в ответе

status_code

int – Код части строки HTTP статуса

headers

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

Примечание

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

cookies

dict – Словарь значений falcon.testing.Cookie, разобранных из ответа по имени.

encoding

str – Кодировка текста тела ответа или None, если кодировка не может быть определена.

content

bytes – Необработанное тело ответа или bytes, если тело ответа было пустым.

text

str – Декодированное тело ответа типа unicode в Python 2.6 и 2.7, и типа str в противном случае. Если тип контента не указывает кодировку, используется UTF-8.

json

dict – Десериализованное тело JSON. Вызывает ошибку, если ответ не JSON.

class falcon.testing.Cookie(morsel) [source]

Представляет куки, возвращённые моделируемым запросом.

Параметры: morsel – Объект Morsel, из которого извлекаются данные куки.
name

str – Имя куки.

value

str – Значение куки.

expires

datetime.datetime – Метка времени истечения срока действия куки или None, если не указана.

path

str – Префикс пути, к которому ограничена эта куки, или None, если не указан.

domain

str – Домен, к которому ограничена эта куки, или None, если не указан.

max_age

int – Срок действия куки в секундах, или None, если не указан.

secure

bool – Указывает, может ли куки передаваться только через HTTPS со стороны клиента.

http_only

bool – Указывает, может ли куки включаться только в незапрограммированные запросы от клиента.

falcon.testing.simulate_request(app, method='GET', path='/', query_string=None, headers=None, body=None, file_wrapper=None, params=None, params_csv=True, protocol='http') [source]

Моделирует запрос к приложению WSGI.

Выполняет запрос к приложению WSGI. Использует wsgiref.validate для проверки того, что ответ является действительным WSGI.

Ключевые аргументы:
  • app (callable) – Приложение WSGI для вызова
  • method (str) – HTTP-метод для использования в запросе (по умолчанию: ‘GET’)
  • path (str) – Путь URL для запроса (по умолчанию: ‘/’)
  • 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 в запросе.
  • file_wrapper (callable) – Функция, возвращающая итерируемый объект, который будет использоваться в качестве значения для wsgi.file_wrapper в окружении (по умолчанию: None). Это можно использовать для тестирования высокопроизводительной передачи файлов, когда resp.stream установлено в объект типа файл.
Возвращает:

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

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

Result

falcon.testing.simulate_get(app, path, **kwargs) [source]

Имитирует GET-запрос к WSGI-приложению.

Эквивалентно:

simulate_request(app, 'GET', 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.
  • query_string (str) – Необработанная строка запроса для включения в запрос (по умолчанию: None). Если указано, переопределяет params.
  • headers (dict) – Дополнительные заголовки для включения в запрос (по умолчанию: None)
  • file_wrapper (callable) – Функция, возвращающая итерируемый объект, используемый в качестве значения для wsgi.file_wrapper в среде (по умолчанию: None). Это может использоваться для тестирования высокопроизводительной передачи файлов, когда resp.stream имеет значение, похожее на объект файла.
  • protocol – Протокол для использования в схеме URL (по умолчанию: «http»)
falcon.testing.simulate_head(app, path, **kwargs) [source]

Имитирует HEAD-запрос к WSGI-приложению.

Эквивалентно:

simulate_request(app, 'HEAD', 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.
  • query_string (str) – Необработанная строка запроса для включения в запрос (по умолчанию: None). Если указано, переопределяет params.
  • headers (dict) – Дополнительные заголовки для включения в запрос (по умолчанию: None)
  • protocol – Протокол для использования в схеме URL (по умолчанию: «http»)
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) – Строка, отправляемая в теле запроса. Принимает как байтовые строки, так и строки Unicode (по умолчанию: None). Если предоставлена строка Unicode, она будет закодирована как UTF-8 в запросе.
  • protocol – Протокол для использования в схеме URL (по умолчанию: «http»)
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) – Строка, отправляемая в теле запроса. Принимает как байтовые строки, так и строки Unicode (по умолчанию: None). Если предоставлена строка Unicode, она будет закодирована как UTF-8 в запросе.
  • protocol – Протокол для использования в схеме URL (по умолчанию: «http»)
END_OF_DOCUMENT_MARKER
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’)
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) – Строка для отправки в теле запроса. Принимает как байтовые строки, так и строки Unicode (по умолчанию: None). Если предоставлена строка Unicode, она будет закодирована в UTF-8 в запросе.
  • protocol – Протокол для использования в схеме URL (по умолчанию: ‘http’)
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’)
END_OF_DOCUMENT_MARKER
class falcon.testing.TestClient(app) [source]

Имитирует запросы к WSGI-приложению.

Этот класс предоставляет контекстный обертка для simulate_* тестовых функций Falcon. Он позволяет заменить следующее:

simulate_get(app, '/messages')
simulate_head(app, '/messages')

на это:

client = TestClient(app)
client.simulate_get('/messages')
client.simulate_head('/messages')
Параметры: app (callable) – WSGI-приложение, к которому будут обращаться при моделировании запросов
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

object – 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)
api

object – Устаревшее псевдоним для app

api_class

callable – Устаревшая переменная класса; будет удалена в будущей версии.

class falcon.testing.SimpleTestResource(status=None, body=None, json=None, headers=None) [source]

Мок-ресурс для функционального тестирования компонентов фреймворка.

Этот класс реализует простой тестовый ресурс, который можно расширять по мере необходимости для тестирования middleware, хуков и самого фреймворка Falcon.

Реализованы только noop 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 (dict) – Документ JSON по умолчанию для использования в ответах. Будет сериализован в строку и закодирован как UTF-8. Можно указать либо json, либо body, но не оба.
  • headers (dict) – Набор дополнительных заголовков по умолчанию для включения в ответы
called

bool – Было ли захвачено req/resp.

captured_req

falcon.Request – Последний объект Request, переданный в любой из методов обработчиков.

captured_resp

falcon.Response – Последний объект Response, переданный в любой из методов обработчиков.

captured_kwargs

dict – Последний словарь kwargs, помимо req и resp, которые были переданы в любой из методов обработчиков.

class falcon.testing.StartResponseMock [source]

Мок-объект, представляющий WSGI start_response вызываемый объект.

call_count

int – Количество вызовов start_response.

status

str – Строка HTTP-статуса, например, ‘785 TPS Cover Sheet not attached’.

headers

list – Список исходных заголовков, переданных в start_response, согласно PEP-333.

headers_dict

dict – Заголовки в виде нечувствительного к регистру dict-подобного объекта, а не list.

END_OF_DOCUMENT_MARKER
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) [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‘s
  • 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 в среде.

Устаревшее

class falcon.testing.TestBase(methodName='runTest') [source]

Расширяет unittest для поддержки функциональных тестов WSGI.

Предупреждение

Этот класс устарел и будет удалён в будущих версиях. Пожалуйста, используйте TestCase вместо него.

Примечание

Если доступно, использует testtools вместо unittest.

Этот базовый класс предоставляет дополнительную функциональность для тестов в стиле unittest, чтобы помочь смоделировать вызовы WSGI без необходимости запуска реального веб-сервера. Просто наследуйте от этого класса в ваших тестовых классах вместо unittest.TestCase или testtools.TestCase.

api

falcon.API – Экземпляр API, на который нацелены при моделировании запросов. По умолчанию falcon.API().

srmock

falcon.testing.StartResponseMock – Предоставляет вызываемую функцию, которая имитирует поведение аргумента start_response, который сервер обычно передаёт в WSGI-приложение. Объект-модель захватывает различные данные из ответа приложения на моделированный запрос.

test_route

str – Простой, сгенерированный путь, который тест может использовать для добавления маршрута к API.

api_class

Псевдоним API

setUp() [source]

Инициализатор, в стиле unittest

simulate_request(path, decode=None, **kwargs) [source]

Имитирует запрос к self.api.

Параметры:
  • path (str) – Путь для запроса.
  • decode (str, необязательно) – Если это кодировка символов, такая как ‘utf-8’, simulate_request будет предполагать, что ответ — это строка одного байта, и будет декодировать её как результат запроса, а не просто возвращать стандартный WSGI-итерируемый объект.
  • kwargs (необязательно) – Те же, что и определённые для falcon.testing.create_environ.
srmock_class

Псевдоним StartResponseMock

tearDown() [source]

Деструктор, в стиле unittest

END_OF_DOCUMENT_MARKER
class falcon.testing.TestResource [source]

Заглушка ресурса для функционального тестирования.

Предупреждение

Этот класс устарел и будет удален в будущей версии. Пожалуйста, используйте SimpleTestResource вместо него.

Этот класс реализует on_get обработчик, собирает данные запроса и устанавливает тело и заголовки ответа.

Дочерние классы могут добавлять дополнительные методы и атрибуты по мере необходимости.

sample_status

str – HTTP-статус для установки в ответ

sample_body

str – Случайная строка тела для установки в ответ

resp_headers

dict – Образцовые заголовки для использования в ответе

req

falcon.Request – Объект запроса, переданный в on_get обработчик.

resp

falcon.Response – Объект ответа, переданный в on_get обработчик.

kwargs

dict – Аргументы ключевых слов, переданные в on_get обработчик, если таковые имеются.

called

bool – True , если on_get был вызван; False в противном случае.

on_get(req, resp, **kwargs) [source]

Обработчик GET.

Собирает req, resp, и kwargs. Также настраивает образец ответа.

Параметры:
  • req – Экземпляр Falcon Request.
  • resp – Экземпляр Falcon Response.
  • kwargs – Параметры URI шаблона имя=значение, если таковые имеются, а также любые дополнительные аргументы, введённые посредством middleware.

© 2012–2016 by Rackspace Hosting, Inc. and other contributors
Licensed under the Apache License, Version 2.0.
https://falcon.readthedocs.io/en/1.2.0/api/testing.html

Spec-Zone.ru

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