Как замокать путь для os.curdir в тесте?

Для замокания пути для os.curdir в тестах можно использовать библиотеку mock вместе с patch декоратором. mock позволяет замокать модули и их атрибуты, включая os модуль и его атрибуты.

Вот пример кода, который иллюстрирует, как замокать os.curdir в тесте:

import os
from unittest.mock import patch

def my_function():
    # Используем os.curdir
    current_directory = os.curdir
    # Работа с текущим каталогом

def test_my_function():
    with patch('os.curdir', '/mocked/path'):
        my_function()
    
        # Ожидаем, что использовался замоканный путь
        assert os.curdir == '/mocked/path'

В этом примере мы импортируем модуль os и декоратор patch из unittest.mock. Затем мы определяем функцию my_function(), которая использует атрибут os.curdir. Далее мы определяем тестовую функцию test_my_function(), которая выполняет следующие действия:

1. С использованием patch декоратора мы заменяем os.curdir на желаемый путь '/mocked/path'.
2. Вызываем my_function(), которая внутри себя использует os.curdir.
3. После выполнения функции проверяем, что os.curdir теперь равен нашему замоканному пути '/mocked/path'.

Таким образом, при запуске теста, функция my_function() будет использовать замоканный путь вместо реального значения os.curdir, что позволяет легко тестировать код, не зависящий от реальной файловой системы.