0

次のような関数 foo があります。

class SomeClass(object):

    def foo(self, url):
        try:
            r = requests.get(url)
            buffer = StringIO.StringIO(r.content)
        except Exception as e:
            pass

次のようなことを行って、Python モック ライブラリでテストしようとしています。

class FooTest(unittest.TestCase):

    def test_foo(self):
        obj = SomeClass()

        with patch('requests.get', MagicMock()):
            with patch('StringIO.StringIO', some_fake_method):
                obj.foo()

ただし、このようにすると、それらのいずれにもパッチが適用されず、代わりに適切なresponseオブジェクトが取得されStringIOます。StringIOパッチを省略した場合MagicMock、(オブジェクトではなく) 期待どおりのオブジェクトが得られresponseます。これを正しく機能させるにはどうすればよいですか?

4

0 に答える 0