Example #1
0
 def _assert_de_orden(self, name_tuples, expected_bandera_order):
     c = Contexto(args=[Argumento(nombres=x) for x in name_tuples])
     esperado = [c.ayuda_para(x) for x in expected_bandera_order]
     assert c.help_tuplas() == esperado
Example #2
0
 def guiionbajo_args(self):
     c = Contexto(
         args=(Argumento("yo_tengo_guionesbajos", help="yup"), ))
     resultado = c.ayuda_para("--yo-tengo-guionesbajos")
     assert resultado == ("--yo-tengo-guionesbajos=CADENA", "yup")
Example #3
0
 def args_por_defecto_verdad(self):
     c = Contexto(
         args=(Argumento("esverdad", tipo=bool, default=True), ))
     assert c.ayuda_para("--esverdad") == ("--[no-]esverdad", "")
Example #4
0
    class ayuda_para:
        def setup(self):
            # Contexto normal, no relacionado con artefacto/colección
            self.ordinario = Contexto(
                args=(Argumento("foo"), Argumento("bar", help="bar el baz")))
            # Artefacto/Colección Contexto generado
            # (expondrá banderas n tales)
            @artefacto(help={"otroarg": "otra ayuda"}, opcional=["valopc"])
            def miartefacto(c, miarg, otroarg, valopc, intval=5):
                pass

            col = Coleccion(miartefacto)
            self.tasked = col.a_contextos()[0]

        def genera_ValueError_para_valores_no_bandera(self):
            with raises(ValueError):
                self.ordinario.ayuda_para("foo")

        def ordinario_sin_cadenadeayuda(self):
            assert self.ordinario.ayuda_para("--foo") == ("--foo=CADENA", "")

        def ordinario_con_cadenadeayuda(self):
            resultado = self.ordinario.ayuda_para("--bar")
            assert resultado == ("--bar=CADENA", "bar el baz")

        def artefacto_impulsado_con_cadenadeayuda(self):
            resultado = self.tasked.ayuda_para("--otroarg")
            assert resultado == ("-o CADENA, --otroarg=CADENA", "otra ayuda")

        # Sí, las siguientes 3 pruebas son idénticas en forma, pero
        # técnicamente prueban comportamientos diferentes. HERPIN Y
        # DERPIN
        def artefacto_impulsado_sin_cadenadeayuda(self):
            resultado = self.tasked.ayuda_para("--miarg")
            assert resultado == ("-m CADENA, --miarg=CADENA", "")

        def forma_corta_antes_que_forma_larga(self):
            resultado = self.tasked.ayuda_para("--miarg")
            assert resultado == ("-m CADENA, --miarg=CADENA", "")

        def signo_igual_solo_para_forma_larga(self):
            resultado = self.tasked.ayuda_para("--miarg")
            assert resultado == ("-m CADENA, --miarg=CADENA", "")

        def tipo_de_mapa_de_marcador_de_posición(self):
            # Strings
            helpfor = self.tasked.ayuda_para("--miarg")
            assert helpfor == ("-m CADENA, --miarg=CADENA", "")
            # Ints
            helpfor = self.tasked.ayuda_para("--intval")
            assert helpfor == ("-i INT, --intval=INT", "")
            # TODO: others

        def entradas_de_banderacorta_también_funcionan(self):
            m = self.tasked.ayuda_para("-m")
            miarg = self.tasked.ayuda_para("--miarg")
            assert m == miarg

        def valores_opcionales_usan_corchetes(self):
            resultado = self.tasked.ayuda_para("--valopc")
            assert resultado == ("-p [CADENA], --valopc[=CADENA]", "")

        def guiionbajo_args(self):
            c = Contexto(
                args=(Argumento("yo_tengo_guionesbajos", help="yup"), ))
            resultado = c.ayuda_para("--yo-tengo-guionesbajos")
            assert resultado == ("--yo-tengo-guionesbajos=CADENA", "yup")

        def args_por_defecto_verdad(self):
            c = Contexto(
                args=(Argumento("esverdad", tipo=bool, default=True), ))
            assert c.ayuda_para("--esverdad") == ("--[no-]esverdad", "")