Ejemplo n.º 1
0
 def devuelve_objs_Coleccion_unicos_para_el_mismo_modulo_de_entrada(
         self):
     # Ignorando self.c por ahora, en caso de que cambie más tarde.
     # Primero, un módulo sin raíz Hangar
     mod = load("integracion")
     c1 = Coleccion.del_modulo(mod)
     c2 = Coleccion.del_modulo(mod)
     assert c1 is not c2
     # Ahora uno *con* una raíz Hangar (que anteriormente tenía errores)
     mod2 = load("raiz_explicita")
     c3 = Coleccion.del_modulo(mod2)
     c4 = Coleccion.del_modulo(mod2)
     assert c3 is not c4
Ejemplo n.º 2
0
        def nombre_docstring_default_y_artefactos(self):
            esperado = dict(
                nombre="desplegar",
                help="Cómo desplegar código y configs.",
                artefactos=[
                    dict(
                        nombre="db",
                        help="Implementar en nuestros DB servers.",
                        alias=["db-servers"],
                    ),
                    dict(
                        nombre="omnipresente",
                        help="Implementar en todos los objetivos.",
                        alias=[],
                    ),
                    dict(
                        nombre="web",
                        help="Actualiza y rebota los servidores web.",
                        alias=[],
                    ),
                ],
                default="omnipresente",
                colecciones=[],
            )
            with ruta_de_soporte():
                from arbol import desplegar

                colecc = Coleccion.del_modulo(desplegar)
            assert esperado == colecc.serializado()
Ejemplo n.º 3
0
 def los_nombres_de_los_submodulos_eliminan_al_ultimo_fragmento(self):
     with ruta_de_soporte():
         from paquete import modulo
     c = Coleccion.del_modulo(modulo)
     assert modulo.__name__ == "paquete.modulo"
     assert c.nombre == "modulo"
     assert "miartefacto" in c  # Sanity
Ejemplo n.º 4
0
 def respeta_los_artefactos_pordefecto_de_la_subcoleccion_en_el_nombre_de_la_subcoleccion(
         self):
     sub = Coleccion.del_modulo(load("decoradores"))
     self.c.ad_coleccion(sub)
     # Sanity
     assert self.c["decoradores.biz"] is sub["biz"]
     # Real prueba
     assert self.c["decoradores"] is self.c["decoradores.biz"]
Ejemplo n.º 5
0
 def Ruta_no_valida(self):
     # Esto realmente es solo probar el comportamiento de Lexicon/dict,
     # pero bueno, bueno ser explícito, especialmente si alguna vez
     # queremos que esto se convierta en Salida u otra excepción
     # personalizada. (Por ahora, la mayoría / todas las personas que
     # llaman capturan manualmente KeyError y generan Salida solo para
     # mantener la mayoría del uso de Salida en lo alto del stack ...)
     with raises(KeyError):
         coleccion = Coleccion.del_modulo(load("arbol"))
         coleccion.subcoleccion_desde_ruta("jeje.cualquier.pieza")
Ejemplo n.º 6
0
 def setup(self):
     mod = load("raiz_explicita")
     mod.hng.configurar({
         "clave": "incorporado",
         "otraclave": "yup",
         "subconfig": {
             "miclave": "mivalor"
         },
     })
     mod.hng.nombre = "builtin_name"
     self.nocambiado = Coleccion.del_modulo(mod)
     self.cambiado = Coleccion.del_modulo(
         mod,
         nombre="anular_nombre",
         config={
             "clave": "anular",
             "subconfig": {
                 "miotraclave": "miotrovalor"
             },
         },
     )
Ejemplo n.º 7
0
            def las_transformaciones_se_aplican_a_en_de_modulos_explícitos(
                    self):
                # Síntoma cuando hay un error: Coleccion.a_contextos() muere
                # porque itera sobre .nombres_de_artefactos (transformado) y
                # luego intenta usar resultado para acceder a __getitem__
                # (sin transformación automática ... porque en todas las demás
                # situaciones, las claves de estructura de artefacto ya están
                # transformadas; ¡pero este no fue el caso de del_modulo() con
                # objetos explícitos 'hng'!)
                hangar = self._guiones_bajos_anidados()

                class FakeModule(object):
                    __name__ = "mi_modulo"
                    hng = hangar

                colecc = Coleccion.del_modulo(FakeModule(),
                                              nombre_auto_guion=False)
                # NOTE: underscores, not dashes
                esperado = {
                    "mi_artefacto", "interior_colecc.artefacto_interno"
                }
                assert {x.nombre for x in colecc.a_contextos()} == esperado
Ejemplo n.º 8
0
        def nombrar_artefactos_y_colecciones_pordefecto_del_docstring(self):
            docs = dict(
                nombre="docs",
                help="Artefactos para gestion de doc Sphinx.",
                artefactos=[
                    dict(nombre="all",
                         help="Fabrica todo formatos de docs.",
                         alias=[]),
                    dict(nombre="html",
                         help="Genera solo salida HTML.",
                         alias=[]),
                    dict(nombre="pdf",
                         help="Genere solo salida PDF.",
                         alias=[]),
                ],
                default="all",
                colecciones=[],
            )
            python = dict(
                nombre="python",
                help="Artefactos de distribución de PyPI /etc.",
                artefactos=[
                    dict(
                        nombre="all",
                        help="Fabrica todos los paquetes de Python.",
                        alias=[],
                    ),
                    dict(
                        nombre="sdist",
                        help="Construye tar.gz de estilo clásico.",
                        alias=[],
                    ),
                    dict(nombre="wheel",
                         help="Construye una distb. wheel (rueda).",
                         alias=[]),
                ],
                default="all",
                colecciones=[],
            )
            esperado = dict(
                nombre="fabric",
                help="Artefactos p.compilar cód estático.",
                artefactos=[
                    dict(
                        nombre="all",
                        help="Fabrica los artefactos necesarios.",
                        alias=["todo"],
                    ),
                    dict(
                        nombre="c-ext",
                        help="Construye nuestra extensión C interna.",
                        alias=["ext"],
                    ),
                    dict(nombre="zap",
                         help="Una forma majadera de limpiar.",
                         alias=[]),
                ],
                default="all",
                colecciones=[docs, python],
            )
            with ruta_de_soporte():
                from arbol import fabric

                colecc = Coleccion.del_modulo(fabric)
            assert esperado == colecc.serializado()
Ejemplo n.º 9
0
 def ruta_anidada(self):
     coleccion = Coleccion.del_modulo(load("arbol"))
     docs = coleccion.colecciones["fabric"].colecciones["docs"]
     assert coleccion.subcoleccion_desde_ruta("fabric.docs") is docs
Ejemplo n.º 10
0
 def ruta_de_nivel_superior(self):
     coleccion = Coleccion.del_modulo(load("arbol"))
     fabric = coleccion.colecciones["fabric"]
     assert coleccion.subcoleccion_desde_ruta("fabric") is fabric
Ejemplo n.º 11
0
 def setup(self):
     self.c = Coleccion.del_modulo(load("raiz_explicita"))
Ejemplo n.º 12
0
 def permite_que_las_tareas_con_nombres_explícitos_anulen_el_nombre_enlazado(
         self):
     colecc = Coleccion.del_modulo(load("nombre_de_subcol_afact"))
     assert "nombre-explicito" in colecc.artefactos  # no 'nombre_implicito'
Ejemplo n.º 13
0
 def honra_colecciones_explicitas(self):
     colecc = Coleccion.del_modulo(load("raiz_explicita"))
     assert "alto-nivel" in colecc.artefactos
     assert "sub-nivel" in colecc.colecciones
     # La verdadera prueba clave
     assert "sub-artefacto" not in colecc.artefactos
Ejemplo n.º 14
0
 def setup(self):
     self.c = Coleccion.del_modulo(load("integracion"))