def incremento_True_desencadena_el_incremento_por_default(self): a = Argumento("verbose", tipo=int, default=0, incremento=True) assert a.valor == 0 # NOTE: el analizador actualmente sólo dice "Argumento.toma_valor # es falso? Va a poner True/False ahí." Así que esto parece bastante # tonto fuera de contexto (como con los tipos-de-lista de arriba.) a.valor = True assert a.valor == 1 for _ in range(4): a.valor = True assert a.valor == 5
def tipo_lista_de_desencadenadores_anexar_en_lugar_de_sobrescribir(self): # TODO: cuando se pone de esta manera hace que la API se vea # bastante extraña; tal vez un signo, deberíamos cambiar a métodos # de establecimiento explícitos (seleccionados en tipo, tal vez) # en lugar de usar un establecedor implícito a = Argumento("milista", tipo=list) assert a.valor == [] a.valor = "val1" assert a.valor == ["val1"] a.valor = "val2" assert a.valor == ["val1", "val2"]
def prueba_de_tipo_list_para_valor_de_lista_vacia(self): arg = Argumento("a", tipo=list) assert not arg.obtuvo_valor arg.valor = "agrega-me" assert arg.obtuvo_valor
def prueba_de_tipo_no_list_para_valor_None(self): arg = Argumento("a") assert not arg.obtuvo_valor arg.valor = "algo" assert arg.obtuvo_valor
def transformado_aparece_como_punto_valor_con_original_como_valor_bruto(self): "transformed, modified valor is .valor, original is .valor_bruto" a = Argumento("a", tipo=int) a.valor = "5" assert a.valor == 5 assert a.valor_bruto == "5"
def sin_transformar_aparece_como_punto_valor(self): "sin transformar, aparece como .valor" a = Argumento("a", tipo=str) a.valor = "foo" assert a.valor == "foo"
def disponible_como_punto_valor_bruto(self): "available as .valor_bruto" a = Argumento("a") a.valor = "foo" assert a.valor_bruto == "foo"