Я использую pytest и хочу записать ответ на запрос, используя vcrpy.
Я использую колбу 1.0.2, pytest 4.5.0, pytest-flask 0.15.0 и vcrpy 2.00,1.Я реализовал успокоительный API, используя колбу.Я написал тест, но я хотел бы записать ответ на запрос, а vcr не записывает ответ.
Моя конечная точка:
from flask import jsonify
from flask import Blueprint
class CompanyResource(Resource):
def post(self):
response = jsonify({
"timestamp": datetime.utcnow()
})
response.status_code = 201
return response
api_bp = Blueprint('dashboard', __name__)
api = Api(api_bp)
api.add_resource(CompanyResource, 'company', endpoint='company')
Тест является следующим
import pytest
import vcr
from flask import url_for
base_vcr = vcr.VCR(
cassette_library_dir='tests/dashboard/fixtures',
record_mode='once'
)
def test_create_company(client, company_data, headers):
with base_vcr.use_cassette('create_user.yaml'):
response = client.post(url_for('dashboard.company'),
json=company_data,
headers=headers)
Я ожидаю, что файл будет автоматически сгенерирован в указанном каталоге.Но когда я запускаю тест, кассета не была сгенерирована.Дело в том, что если я изменю client.post
на requests.post
, ответ будет записан для запроса на получение, но если я попытаюсь опубликовать сообщение об ошибке, то получим:
requests.exceptions.MissingSchema: Invalid URL '/api/dashboard/company': No schema supplied. Perhaps you meant http:///api/dashboard/company?
Есть ли у вас какие-либо предложения?проверить конечную точку моего сообщения и записать ответ?