Mocking open(file_name) in unit tests

前端 未结 8 1814
慢半拍i
慢半拍i 2020-12-05 00:37

I have a source code that opens a csv file and sets up a header to value association. The source code is given below:

def ParseCsvFile(source): 
  \"\"\"Pa         


        
8条回答
  •  一整个雨季
    2020-12-05 01:01

    Is simple with decorator (Python3):

    def my_method():
        with open(file="/1.txt", mode='r', encoding='utf-8') as file:
            return file.read().strip()
    
    
    @mock.patch("builtins.open", create=True)
    def test_my_method(mock_open):
        mock_open.side_effect = [
            mock.mock_open(read_data="A").return_value
        ]
    
        resA = my_method()
        assert resA == "A"
    
        mock_open.mock_calls ==  [mock.call(file="/1.txt", mode='r', encoding='utf-8')]
    

提交回复
热议问题