Mock an function to modify partial return value by special arguments on Python
Mock an function to modify partial return value by special arguments on Python
python mock一个带参数的方法,修改指定参数的返回值,大家直接看代码就能懂。
want mock code:
import requests
def get_value(arg):
resp = requests.get('https://httpbin.org/get', params={'k': arg})
return resp.json()['args']
def main():
# just mock while arg == 'bad'
print(get_value('bad'))
print(get_value('good'))
if __name__ == '__main__':
main()
mock code:
import unittest.mock
import mock_func
class TestMockFunc(unittest.TestCase):
def test_main(self):
'''style 1: using with statement and nested function'''
print('test_main')
# backup original function for normal call
orig_func = mock_func.get_value
# nested function for mock side_effect
def fake_get_value(arg):
if arg == 'bad':
return {'k': 'mock_value'}
else:
return orig_func(arg)
# patch function
with unittest.mock.patch('mock_func.get_value') as mock_get_value:
mock_get_value.side_effect = fake_get_value
mock_func.main()
# backup original function for normal call at class or global
orig_func = mock_func.get_value
# patch using decorator
@unittest.mock.patch('mock_func.get_value')
def test_main_other(self, mock_get_value):
'''style 2: using with statement and nested function'''
print('test_main_other')
# using lambda instead of nested function
mock_get_value.side_effect = lambda arg: \
{'k': 'mock_value'} \
if arg == 'bad' \
else TestMockFunc.orig_func(arg)
mock_func.main()
if __name__ == '__main__':
unittest.main()
Mock an function to modify partial return value by special arguments on Python的更多相关文章
- error C2556: 'const char &MyString::operator [](int)' : overloaded function differs only by return type from 'char &MyString::operator [](int)'
char & operator[](int i);const char & operator[](int i);/*const char & operator(int i);* ...
- javascript 之Function对象的apply(),call(),bind(),方法和arguments,caller,length属性
注:这篇文章原文:http://www.jb51.net/article/30883.htm 自己作为学习,重新写写. 一.写在前面的话 前端javascript编程还只是略懂皮毛,DOM知道一点,j ...
- kwargs - Key words arguments in python function
This is a tutorial of how to use *args and **kwargs For defining the default value of arguments that ...
- 【LeetCode】657. Robot Return to Origin 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 复数求和 counter统计次数 相似题目 参考资料 ...
- 引用类型-Function类型
Function类型 定义函数的三种方式: 1.函数声明 function sum(num1,num2){ return num1 +num2; } 2.函数表达式 var sum = functio ...
- function 类型
一.函数的声明方式 1.普通的函数声明 function box(num1,num2){ return num1+num2; }alert(box(1,2)); 2.使用变量初始化函数 var box ...
- Function对象属性和方法
/* var pattern = /^[\w]+\.(zip|rar|gz)$/; //|选择符必须用分组符号包含起来 var str = '123.7z'; alert(pattern.test(s ...
- JavaScript之Function函数深入总结
整理了JavaScript中函数Function的各种,感觉函数就是一大对象啊,各种知识点都能牵扯进来,不单单是 Function 这个本身原生的引用类型的各种用法,还包含执行环境,作用域,闭包,上下 ...
- JavaScript中的Function类型浅析
1. Function类型是js中引用类型之一,每个函数实际上都是Function类型的实例对象,具有自己的属性和方法.正因为函数式对象,所以函数名实际上也是一个指向函数对象的指针. 2. 常用的函数 ...
随机推荐
- python编码转换
Pyton内部的字符串一般都是unicode编码或字节字符串编码:代码中字符串的默认编码与代码文件本身的编码是一致的:编码转换通常需要以unicode编码作为中间编码进行转换,即先将其他编码的字符串解 ...
- Hadoop2.2.0集群的HA高可靠的最简单配置
HA集群需要使用nameservice ID区分一个HDFS集群.另外,HA中还要使用一个词,叫做NameNode ID.同一个集群中的不同NameNode,使用不同的NameNode ID区分.为了 ...
- python之面向对象高级
一.__slots__ 1.__slots__的概念:是一个变量,变量值可以是列表,元组,或者可迭代对象,也可以是一个字符串. 2.使用点来访问属性本质就是在访问类或者对象的__dict__属性字典( ...
- jquery美刀的释放
jQuery 和其他 JavaScript 框架 正如您已经了解到的,jQuery 使用 $ 符号作为 jQuery 的简写. 如果其他 JavaScript 框架也使用 $ 符号作为简写怎么办? 其 ...
- webview 向右滑动关闭时,怎么禁止此 webview 上下滚动?
webview 向右滑动关闭时,怎么禁止此 webview 上下滚动?
- 发送HTTPS请求
package com.suning.epp.trt.util.r32epp; import java.io.BufferedInputStream; import java.io.IOExcepti ...
- 【JVM】垃圾收集器
程序计数器.Java虚拟机栈.本地方法栈分配的内存是确定的,生命周期与线程同样.所以不须要过多考虑回收问题. 而Java堆和方法区仅仅有运行时才知道有哪些对象被创建,须要多少内存,这部分的内存分配和回 ...
- ionic android返回键
每次点击返回键只会执行一个事件, 在自定义事件中要控制条件不满足时实行原默认动作. 如果只在一个view中监控, 还需要及时注销事件. http://www.jianshu.com/p/b567cc6 ...
- Spring MVC框架处理Web请求的基本流程
- Eslint 规则说明
"no-alert": 0,//禁止使用alert confirm prompt"no-array-constructor": 2,//禁止使用数组构造器&qu ...