Estoy trabajando en una serie de pruebas unitarias en Python, algunas de las cuales dependen del valor de una variable de configuración. Estas variables se almacenan en un archivo de configuración global de Python y se usan en otros módulos. Me gustaría escribir pruebas unitarias para diferentes valores de las variables de configuración, pero todavía no he encontrado la manera de hacerlo.Modificación de variables globales en Python unittest framework
No tengo la posibilidad de volver a escribir las firmas de los métodos que estoy probando.
Esto es lo que me gustaría lograr:
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(), "First result")
def test_second_case(self):
from config import MY_CONFIG_VARIABLE
MY_CONFIG_VARIABLE = False
self.assertEqual(my_function_with_global_var(), "Second result")
Gracias.
Editar: Hizo que el código de ejemplo sea más explícito.
Impresionante. Esto de hecho está funcionando. – badzil
@ badzil: excelente. Ahora que tiene cobertura de pruebas unitarias, puede eliminar la (necesidad de) variable global ;-) – Johnsyweb
Ojalá pudiera. – badzil