MooKoo
MooKoo是一个基于Python的Mock http server
安装
使用pip安装
pip install mookoo
mookoo mock1 && cd mock1 && python mock.py
手工安装
mkdir mock1; cd mock1
git clone https://github.com/gaorx/mookoo.git && rm -rf mookoo/.git
vim mock.py
起步
在mock1
目录中,编辑mock.py
from mookoo import *
GET('/hello').json({"message": "Hello MooKoo!"})
run()
然后在shell中执行
python mock.py
然后在浏览器中就访问http://localhost:7928/hello
,就可以看到
{"message": "Hello Mookoo"}
也可以访问http://localhost:7928/+mookoo
查看此帮助文件
进阶
动态加载文件
在mock1
目录中,创建hello.json
,然后编辑它,然后使用下面的代码动态加载
GET('/hello').load_json('hello.json')
GET('/404').html('<h1>Not found</h1>', status=404)
GET('/custom_header').text("Press F12", header={"My-Header": "HeaderContent"})
GET('/custom_content_type').text("<h1>Press F12</h1>", content_type='text/html')
动态响应
@GET('/dynamic/<sub>')
def _dynamic(sub):
response.content_type = 'text/plain'
return "Sub path is %s, query_string is '%s'" % (sub, request.query_string)
静态文件
将一张在mock1
目录中复制一张图片hello.jpg
GET('/image').static_file('hello.jpg')
静态目录
@mookoo.GET('/static/<filename:path>')
def _static_dir(filename):
return mookoo.static_file(os.path.join('static_dir', filename))
动态JSON
在mock1
目录中,创建hello.json.py
,内容为:
JSON = {
"message": "Python json",
"query_string": request.query_string,
}
然后使用下面的代码加载:
GET('/dynamic_json').load_json('hello.json.py')
Helpers
可以使用mookoo.helper
注册共享函数,然后在动态JSON中可以使用helpers
来使用这些函数。例如在mock.py
中:
@helper
def helper1():
return "Helper1"
@helper()
def helper2():
return "Helper2"
@helper('helper3')
def the_name_is_not_helper3():
return "Helper3"
GET('/dynamic_json').load_json('hello.json.py')
在hello.json.py
中
JSON = {
"message": "Python json",
"query_string": request.query_string,
"helper1": helpers.helper1(),
"helper2": helpers.helper2(),
"helper3": helpers.helper3(),
}
重定向
GET('/redirect').redirect('https://github.com/gaorx/mookoo')
代理
GET('/http_rfc').proxy('https://tools.ietf.org/rfc/rfc2616.txt')
注意: Proxy只会使用转发源Header中的Status和Content-Type,其余Header不转发。