Исправление функции в файле, где она определена - PullRequest
0 голосов
/ 02 марта 2019

Я пытаюсь выучить юнит-тестирование патчей.У меня есть один файл, который определяет функцию, а затем использует эту функцию.Когда я пытаюсь исправить эту функцию, ее возвращаемое значение дает мне реальное возвращаемое значение, а не исправлено возвращаемое значение.

Как мне исправить функцию, котораяопределяется и используется в одном файле?Примечание: я пытался следовать совету, данному здесь , но, похоже, он не решил мою проблему.

walk_dir.py


    from os.path import dirname, join
    from os import walk
    from json import load


    def get_config():
        current_path =dirname(__file__)
        with open(join(current_path, 'config', 'json', 'folder.json')) as json_file:
            json_data = load(json_file)

        return json_data['parent_dir'] 

    def get_all_folders():
        dir_to_walk = get_config()
        for root, dir, _ in walk(dir_to_walk):
            return [join(root, name) for name in dir]

test_walk_dir.py


    from hello_world.walk_dir import get_all_folders
    from unittest.mock import patch


    @patch('walk_dir.get_config')
    def test_get_all_folders(mock_get_config):
        mock_get_config.return_value = 'C:\\temp\\test\\'
        result = get_all_folders()
        assert set(result) == set('C:\\temp\\test\\test_walk_dir')

1 Ответ

0 голосов
/ 02 марта 2019

Попробуйте объявить патч следующим образом:

@patch('hello_world.walk_dir.get_config')

Как видите этот ответ на вопрос, который вы связали, рекомендуется, чтобы ваши заявления import соответствовали вашим patch заявления.В вашем случае from hello_world.walk_dir import get_all_folders и @patch('walk_dir.get_config') не совпадают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...