python如何键入数据_如何将数据模拟为请求。响应键入python

我想写一些测试用例来练习isinstance(obj)中的object_check,请求。响应)逻辑。在我创建模拟数据作为请求.post. 模拟数据的类型始终是模拟类。这样,我如何重写模拟数据以便模拟数据可以是请求。回应?所以我可以练习d = obj.json()?在from unittest.mock import patch, Mock

import unittest

import requests

from requests.exceptions import HTTPError

import pytest

def object_check(obj):

if isinstance(obj, bytes):

d = ujson.decode(obj.decode())

elif isinstance(obj, requests.Response):

d = obj.json()

else:

raise ValueError('invalid type')

return d

def service_post(params):

"""

trivial function that does a GET request

against google, checks the status of the

result and returns the raw content

"""

url = "https://www.iamdomain.com"

params = {'number': 1234, 'user_id': 1, 'name': 'john'}

resp = requests.post(url, data=params)

return object_check(resp)

@patch.object(requests, 'post')

def test_service_post(mock_request_post):

data = {'number': 0000, 'user_id': 0, 'name': 'john'}

def res():

r = Mock()

r.status_code.return_value = 200

r.json.return_value = data

return r

mock_request_post.return_value = res()

assert data == service_post(data)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值