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
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", "")
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", "")