def honra_el_ajuste_de_config_del_corredor(self): clase_corredor = Mock() config = Config({"corredores": {"local": clase_corredor}}) c = Contexto(config) c.correr("foo") assert clase_corredor.mock_calls == [ call(c), call().correr("foo") ]
def prefijos_deben_aplicarse_a_corredor(self, Local): corredor = Local.valor_de_retorno c = Contexto() with c.prefijo("cd foo"): c.correr("chubaca") cmd = "cd foo && chubaca" assert corredor.correr.called, "correr() nunca llamó a corredor.correr()!" assert corredor.correr.llamar_args[0][0] == cmd
def deben_ocurrir_antes_de_los_prefijos(self, Local): corredor = Local.valor_de_retorno c = Contexto() with c.prefijo("source venv"): with c.cd("foo"): c.correr("chubaca") cmd = "cd foo && source venv && chubaca" assert corredor.correr.called, "correr() nunca llamó a corredor.correr()!" assert corredor.correr.llamar_args[0][0] == cmd
def debe_usarse_finalmente_para_revertir_los_cambios_en_las_excepciones( self, Local): class Ups(Exception): pass corredor = Local.valor_de_retorno c = Contexto() try: with c.prefijo("cd foo"): c.correr("chubaca") assert corredor.correr.llamar_args[0][ 0] == "cd foo && chubaca" raise Ups except Ups: pass c.correr("ls") # When bug present, this would be "cd foo && ls" assert corredor.correr.llamar_args[0][0] == "ls"
def debe_usarse_finalmente_para_revertir_los_cambios_en_las_excepciones( self, Local): class Ups(Exception): pass corredor = Local.valor_de_retorno c = Contexto() try: with c.cd("foo"): c.correr("chubaca") assert corredor.correr.llamar_args[0][ 0] == "cd foo && chubaca" raise Ups except Ups: pass c.correr("ls") # Cuando el error presente, esto sería "cd foo && ls" assert corredor.correr.llamar_args[0][0] == "ls"
def anidacion_debe_mantener_el_orden(self, Local): corredor = Local.valor_de_retorno c = Contexto() with c.prefijo("cd foo"): with c.prefijo("cd bar"): c.correr("chubaca") cmd = "cd foo && cd bar && chubaca" assert ( corredor.correr.called ), "correr() nunca llamó a corredor.correr()!" # noqa assert corredor.correr.llamar_args[0][0] == cmd c.correr("chubaca") cmd = "cd foo && chubaca" assert corredor.correr.called, "correr() nunca llamó a corredor.correr()!" assert corredor.correr.llamar_args[0][0] == cmd # también prueba que los prefijos no persisten c.correr("chubaca") cmd = "chubaca" assert corredor.correr.called, "correr() nunca llamó a corredor.correr()!" assert corredor.correr.llamar_args[0][0] == cmd
def por_defecto_a_Local(self, Local): c = Contexto() c.correr("foo") assert Local.mock_calls == [call(c), call().correr("foo")]