кассеты записи vcrpy не записываются в тесте с использованием test_client.post - PullRequest
0 голосов
/ 26 мая 2019

Я использую 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?

Есть ли у вас какие-либо предложения?проверить конечную точку моего сообщения и записать ответ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...