私のPythonアプリケーションから関数をテストしたいと思います。コードは次のようになります。テストされた関数内のオブジェクトによって使用される組み込み関数モックを作成する方法
import unittest
from unittest.mock import patch
from mock import MagicMock
import configparser
def read_config_sections(filename):
cp = configparser.ConfigParser()
cp.read(filename)
sections = list()
for section in cp.sections():
sections.append(section)
return sections
class TestReadConfigSection(unittest.TestCase):
@patch("__main__.open", MagicMock(return_value="[SECTION1]"))
def test_read_config_sections(self):
sections = read_config_sections("somename.ini")
self.assertEqual(["SECTION1"], sections)
if "__main__" == __name__:
unittest.main()
は、私が設定を読み込むためにConfigParser
の方法によって使用されるopen
機能をモックとしたいです。誰かが私にどのようにうまくそれを伝えることができる?上のコードを実行すると、変数sections
は空のリストになります。
また、この機能のテスト方法がわかりましたか?
代わりに__main__.open私はbuiltins.openを使用する必要がありますが、私はそれが例外ですAttributeError:__exit__ –