0

Изменение глобальных переменных в фреймворке unittest для Python

12

Я работаю над серией модульных тестов на Python, некоторые из которых зависят от значений конфигурационных переменных. Эти переменные хранятся в глобальном конфигурационном файле Python и используются в других модулях. Я хотел бы писать модульные тесты для различных значений конфигурационных переменных, но пока не нашёл способа это сделать.

У меня нет возможности переписывать сигнатуры методов, которые я тестирую.

Вот что я хотел бы достичь:

from my_module import my_function_with_global_var

class TestSomething(self.unittest):

    def test_first_case(self):
         from config import MY_CONFIG_VARIABLE
         MY_CONFIG_VARIABLE = True
         self.assertEqual(my_function_with_global_var(), "Первый результат")

    def test_second_case(self):
         from config import MY_CONFIG_VARIABLE
         MY_CONFIG_VARIABLE = False
         self.assertEqual(my_function_with_global_var(), "Второй результат")

Спасибо.

Правка: Сделал пример кода более понятным.

1 ответ(ов)

0

Вы импортируете MY_CONFIG_VARIABLE в локальную область видимости, а затем сразу же перезаписываете это имя другим объектом. Это не изменит значение в модуле config. Попробуйте вместо этого:

import config
config.MY_CONFIG_VARIABLE = False
Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь