0
Как я могу сделать следующий тест для работы?Как я могу исправить функцию, хранящуюся в переменной?
mymodule.py
import requests
http_methods = {
"GET": requests.get,
"POST": requests.post,
"PUT": requests.put,
"DELETE": requests.delete
}
def foo(method):
r = http_methods[method]("http://some.thing")
return r.status_code
tests.py
import unittest
from mock import patch
import mymodule
class MyTestCase(unittest.TestCase):
...
@patch("requests.post")
def test_foo(self, post):
post.return_value = 200
self.assertEquals(mymodule.foo("POST"), 200)
Когда я выполнить тест я получил ConnectionError
исключение, потому что foo
выполняет реальную requests.post
.
Что вы пытаетесь сделать? * Как я могу сделать следующий код для работы? * Мне недостаточно для понимания (по крайней мере), чтобы понять .. Пожалуйста, укажите, чего вы пытаетесь достичь. – pradyunsg
@Schoolboy реальный код больше и имеет значение ». Я удалил все остальные части кода, которые не имеют прямого отношения к проблеме. Моя проблема: с помощью словаря с несколькими функциями, как я могу их исправить? – borges
@Schoolboy 'patch' decorator из python [mock library] (http://www.voidspace.org.uk/python/mock/). – borges