def entradas_tipo_booleano_con_valores_pordefecto_no_booleanos( self): for entrada_ in ("0", "1", "", "bah", "false"): os.environ["DUED_FOO"] = entrada_ c = Config(defaults={"foo": "bar"}) c.cargar_entorno_shell() assert c.foo == entrada_
def unicode_reemplazado_por_el_valor_entorno(self): # Python 3 no le permite poner objetos 'bytes' en # os.environ, por lo que la prueba no tiene sentido allí. if six.PY3: return os.environ["DUED_FOO"] = "miunicode" c = Config(defaults={"foo": u"miviejovalor"}) c.cargar_entorno_shell() assert c.foo == "miunicode" assert isinstance(c.foo, str)
def varent_anulan_la_coleccion(self): os.environ["dued_OUTER_INNER_HOORAY"] = "entorno" c = Config() c.cargar_coleccion( {"exterior": { "interior": { "hurra": "defaults" } }}) c.cargar_entorno_shell() assert c.exterior.interior.hurra == "entorno"
def tipos_arbitrarios_tambien_trabajan(self): os.environ["DUED_FOO"] = "cualquier" class Meh(object): def __init__(self, thing=None): pass obj_viejo = Meh() c = Config(defaults={"foo": obj_viejo}) c.cargar_entorno_shell() assert isinstance(c.foo, Meh) assert c.foo is not obj_viejo
def booleanos(self): for entrada_, resultado in ( ("0", False), ("1", True), ("", False), ("bah", True), ("false", True), ): os.environ["DUED_FOO"] = entrada_ c = Config(defaults={"foo": bool()}) c.cargar_entorno_shell() assert c.foo == resultado
def tipos_numericos_se_convierten(self): pruebas = [ (int, "5", 5), (float, "5.5", 5.5), # TODO: more? ] # No se puede usar '5L' en Python 3, incluso tenerlo en una # rama lo molesta. if not six.PY3: pruebas.append((long, "5", long(5))) # noqa for old, new_, resultado in pruebas: os.environ["DUED_FOO"] = new_ c = Config(defaults={"foo": old()}) c.cargar_entorno_shell() assert c.foo == resultado
def _tipo_inconvertible(self, default): os.environ["DUED_FOO"] = "cosas" c = Config(defaults={"foo": default}) c.cargar_entorno_shell()
def caso_base_predeterminado_es_el_prefijo_dued(self): os.environ["DUED_FOO"] = "bar" c = Config(defaults={"foo": "nobar"}) c.cargar_entorno_shell() assert c.foo == "bar"
def cadenas_reemplazadas_por_el_valor_entorno(self): os.environ["DUED_FOO"] = u"mivalor" c = Config(defaults={"foo": "miviejovalor"}) c.cargar_entorno_shell() assert c.foo == u"mivalor" assert isinstance(c.foo, six.text_type)
def guiones_bajos_ambiguos_no_adivina(self): os.environ["DUED_FOO_BAR"] = "biz" c = Config(defaults={"foo_bar": "wat", "foo": {"bar": "huh"}}) c.cargar_entorno_shell()
def ambos_tipos_de_guiones_bajos_mezclados(self): os.environ["DUED_FOO_BAR_BIZ"] = "baz" c = Config(defaults={"foo_bar": {"biz": "nobaz"}}) c.cargar_entorno_shell() assert c.foo_bar.biz == "baz"
def guionesbajos_anidados(self): os.environ["DUED_FOO_BAR"] = "biz" c = Config(defaults={"foo": {"bar": "nobiz"}}) c.cargar_entorno_shell() assert c.foo.bar == "biz"
def guionbajo_nivel_superior(self): os.environ["DUED_FOO_BAR"] = "biz" c = Config(defaults={"foo_bar": "nobiz"}) c.cargar_entorno_shell() assert c.foo_bar == "biz"
def ajustes_no_predeclarados_no_se_consumen(self): os.environ["DUED_HOLA"] = "¿soy yo a quien estás buscando?" c = Config() c.cargar_entorno_shell() assert "HOLA" not in c assert "hola" not in c
def varent_anulan_el_proyecto(self): os.environ["dued_OUTER_INNER_HOORAY"] = "entorno" c = Config(dir_de_py=join(CONFIGS_RUTA, "yaml")) c.cargar_proyecto() c.cargar_entorno_shell() assert c.exterior.interior.hurra == "entorno"
def varent_anulan_todo_el_sistema(self): os.environ["dued_OUTER_INNER_HOORAY"] = "entorno" c = Config(sistema_prefijo=join(CONFIGS_RUTA, "yaml/")) c.cargar_entorno_shell() assert c.exterior.interior.hurra == "entorno"
def None_reemplazado(self): os.environ["DUED_FOO"] = "algo" c = Config(defaults={"foo": None}) c.cargar_entorno_shell() assert c.foo == "algo"
def tiempoej_anulan_varent(self): os.environ["dued_OUTER_INNER_HOORAY"] = "entorno" c = Config(acte_ruta=join(CONFIGS_RUTA, "json", "dued.json")) c.cargar_acte() c.cargar_entorno_shell() assert c.exterior.interior.hurra == "json"
def conserva_data_de_entorno(self): os.environ["DUED_FOO"] = "bar" c = Config(defaults={"foo": "nobar"}) c.cargar_entorno_shell() c2 = c.clonar() assert c2.foo == "bar"