Создать макет, который будет возвращать обычные заголовки, если они будут получены этим макетом - PullRequest
0 голосов
/ 06 марта 2019

Я использовал responses в Python для возврата кодов ответов и т. Д. При издевательстве в некоторых моих тестах.

Теперь я хочу провести тест, в котором я делаю PUT с некоторыми определенными пользовательскими заголовками, и если они были получены с помощью макета, я бы хотел включить их в ответ, а если нет, то их нет в ответе. Это возможно, и если да, то как это делается?

Дополнительная информация

Я думаю, что мне нужно настроить фиктивный сервер и поразить его моим PUT, а не реальным сервером. Я использую Python 2.7.8, так что думаю, что это должно быть сделано с SimpleHTTPServer. Что мне нужно сделать, так это чтобы мой тест запустил сервер в отдельном потоке, чтобы мой PUT нажал на него, и оттуда проверьте сообщение, которое фиктивный сервер получает для моих заголовков.

Я пытаюсь приспособить это , но я не совсем уверен, как это сделать. Любая помощь будет оценена.

Я вижу, как запускается мой фиктивный сервер, но когда я делаю PUT, я получаю следующий ответ:

<head>
<title>Error response</title>
</head>
<body>
<h1>Error response</h1>
<p>Error code 501.
<p>Message: Unsupported method ('PUT').
<p>Error code explanation: 501 = Server does not support this operation.
</body>

SimpleHTTPServer не поддерживает PUT, поэтому я добавил этот класс в свою программу:

Когда я выполняю server.test(HandlerClass=HTTPRequestHandler) в моем тесте, я получаю эту ошибку:

Traceback (most recent call last):
  File "<string>", line 3, in wrapper
  File "/Users/me/git/config_test/test_config.py", line 512, in test_headers
server.test(HandlerClass=HTTPRequestHandler)
  File "/Users/me/.pyenv/versions/2.7.8/lib/python2.7/SimpleHTTPServer.py", line 226, in test
    BaseHTTPServer.test(HandlerClass, ServerClass)
  File "/Users/me/.pyenv/versions/2.7.8/lib/python2.7/BaseHTTPServer.py", line 589, in test
    port = int(sys.argv[1])
ValueError: invalid literal for int() with base 10: 'config_test.test_config:TestConfig.test_headers'
...