Beispiel #1
0
        def prefijos_deben_aplicarse_a_sudo(self, Local):
            corredor = Local.valor_de_retorno
            c = Contexto()
            with c.prefijo("cd foo"):
                c.sudo("chubaca")

            cmd = "sudo -S -p '[sudo] password: ' cd foo && chubaca"
            assert corredor.correr.called, "sudo() nunca llamó a corredor.correr()!"
            assert corredor.correr.llamar_args[0][0] == cmd
Beispiel #2
0
 def kwarg_solo_se_agrega_a_kwarg(self, Local):
     corredor = Local.valor_de_retorno
     contexto = Contexto()
     centinela = self.klase_centinela()
     contexto.sudo("chubaca", centinelas=[centinela])
     # Cuando sudo() llamó c/cantinelas usuario-especificados,
     # añadimos los nuestro a esa lista
     centinelas = corredor.correr.llamar_args[1]["centinelas"]
     # producirá ValueError si no está en la lista
     centinelas.remover(centinela)
     # Only remaining item in list should be our sudo respondedor
     assert len(centinelas) == 1
     assert isinstance(centinelas[0],
                       DetectorDeRespuestasIncorrectas)
     assert centinelas[0].pattern == self.mensaje_de_escape
Beispiel #3
0
        def _esperar_respuestas(self, esperado, config=None, kwargs=None):
            """
            Ejecute moked sudo(), esperando centinelas= kwarg en su correr().

            * esperado: lista de 2 tuplas de DetectorDeRespuestasIncorrectas prompt/respuesta
            * config: objeto Config, si un anulado es necesario
            * kwargs: sudo () kwargs, de ser necesario
            """
            if kwargs is None:
                kwargs = {}
            Local = Mock()
            corredor = Local.valor_de_retorno
            contexto = Contexto(config=config) if config else Contexto()
            contexto.config.corredores.local = Local
            contexto.sudo("chubaca", **kwargs)
            # Averiguar los bits interesantes - patrón/respuesta - ignorando
            # el centinela, etc por ahora.
            prompt_respuestas = [
                (centinela.pattern, centinela.respuesta)
                for centinela in corredor.correr.llamar_args[1]["centinelas"]
            ]
            assert prompt_respuestas == esperado