У мене досить складно провести mock
з Python:
def method_under_test():
r = requests.post("http://localhost/post")
print r.ok # prints "<MagicMock name='post().ok' id='11111111'>"
if r.ok:
return StartResult()
else:
raise Exception()
class MethodUnderTestTest(TestCase):
def test_method_under_test(self):
with patch('requests.post') as patched_post:
patched_post.return_value.ok = True
result = method_under_test()
self.assertEqual(type(result), StartResult,
"Failed to return a StartResult.")
Тест фактично повертає правильне значення, але r.ok
є об'єктом Mock, а не True
. Як ви глузуєте над атрибутами в mock
бібліотеці Python ?
print
значенняr.ok
з вmethod_under_test
, я бачу<MagicMock name='post().ok' id='57360464'>
, ніTrue
.