def puede_clonar_en_una_subclase(self): orig = Llamar(self.artefacto) class MiLlamada(Llamar): pass clon = orig.clonar(dentro=MiLlamada) assert clon == orig assert isinstance(clon, MiLlamada)
def se_le_pueden_dar_kwargs_adicionales_para_clonar_con(self): orig = Llamar(self.artefacto) class MiLlamada(Llamar): def __init__(self, *args, **kwargs): self.hurra = kwargs.pop("hurra") super(MiLlamada, self).__init__(*args, **kwargs) clon = orig.clonar(dentro=MiLlamada, with_={"hurra": "woo"}) assert clon.hurra == "woo"
def incluye_args_y_kwargs(self): llamar = Llamar( self.artefacto, args=("posarg1", "posarg2"), # Dict de clave-única para evitar problemas ordenamiento de dict kwargs={"kwarg1": "val1"}, ) esperado = "<Llamar 'miartefacto', args: ('posarg1', 'posarg2'), kwargs: {'kwarg1': 'val1'}>" # noqa assert str(llamar) == esperado
def devuelve_un_objeto_nuevo_pero_equivalente(self): orig = Llamar(self.artefacto) clon = orig.clonar() assert clon is not orig assert clon == orig
def crea_un_nuevo_Contexto_a_partir_de_la_config_dada(self): conf = Config(defaults={"foo": "bar"}) c = Llamar(_).crear_contexto(conf) assert isinstance(c, Contexto) assert c.foo == "bar"
def requiere_argumento_de_configuracion(self): with raises(TypeError): Llamar(_).crear_contexto()
def omite_alias_si_el_nombre_explícito_es_el_mismo_que_el_nombre_del_artefacto( self): llamar = Llamar(self.artefacto, llamado_de="miartefacto") assert str( llamar) == "<Llamar 'miartefacto', args: (), kwargs: {}>"
def incluye_aka_si_se_da_un_nombre_explícito(self): llamar = Llamar(self.artefacto, llamado_de="noesmiartefacto") esperado = "<Llamar 'miartefacto' (called as: 'noesmiartefacto'), args: (), kwargs: {}>" # noqa assert str(llamar) == esperado
def es_el_primer_posarg(self): assert Llamar(_).artefacto is _
def puede_ser_dado(self): assert Llamar(_, kwargs={ "foo": "bar" }).kwargs == { "foo": "bar" }
def por_defecto_es_dic_vacio(self): assert Llamar(_).kwargs == dict()
def puede_ser_dado(self): assert Llamar(_, args=(1, 2, 3)).args == (1, 2, 3)
def por_defecto_es_tupla_vacía(self): assert Llamar(_).args == tuple()
def puede_ser_dado(self): assert Llamar(_, llamado_de="foo").llamado_de == "foo"
def pordefecto_a_None(self): assert Llamar(_).llamado_de is None
def incluye_nombre_del_artefacto(self): llamar = Llamar(self.artefacto) assert str( llamar) == "<Llamar 'miartefacto', args: (), kwargs: {}>"
def es_requerido(self): with raises(TypeError): Llamar()