相关疑难解决方法(0)

Python如何重用Mock以避免多次编写mock.patch?

给定的代码如下:

import flask
import time

app = flask.Flask(__name__)

def authorize():
    print('starting authorize io')
    time.sleep(1)
    print('done authorize io')

class BlockingIo():
    def __init__(self, n):
        self.n = n
    def do(self):
        print('starting blocking io')
        time.sleep(1)
        print('ending blocking io')

@app.route('/', methods=['GET'])
@app.route('/<int:n>/', methods=['GET'])
def foo(n=1):
    authorize()
    b = BlockingIo(n)
    b.do()
    return str(n), 200

#app.run(port=5000)
Run Code Online (Sandbox Code Playgroud)

我希望能够为 编写几个测试GET /n/,每个测试都模拟authorizeBlockingIO(n)

app.testing = True
testapp = app.test_client()

import unittest
from unittest import mock

mock.patch('__main__.authorize')

class TestBlockingIo(unittest.TestCase):
    @mock.patch('__main__.authorize')
    @mock.patch('__main__.BlockingIo.do')
    def test_1(self, m, m2):
        r …
Run Code Online (Sandbox Code Playgroud)

python mocking flask python-3.x python-mock

4
推荐指数
1
解决办法
1707
查看次数

标签 统计

flask ×1

mocking ×1

python ×1

python-3.x ×1

python-mock ×1