Example #1
0
    def test_load_with_existing_env_vars_from_args(self):
        env = Env('ABC')
        os.environ['ABC'] = '456'
        env.load()

        assert env.data['ABC'] == '456'

        del os.environ['ABC']
Example #2
0
    def test_load_with_existing_env_vars(self):
        env = Env(keys=['ABC'])
        os.environ['ABC'] = '456'
        env.load()

        assert env.data['ABC'] == '456'

        del os.environ['ABC']
Example #3
0
    def test_load_with_existing_env_vars_from_args(self):
        env = Env('ABC')
        os.environ['ABC'] = '456'
        env.load()

        assert env.data['ABC'] == '456'

        del os.environ['ABC']
Example #4
0
    def test_load_with_existing_env_vars_from_kwargs(self):
        env = Env(**{'src_abc': 'dest_abc'})
        os.environ['SRC_ABC'] = '456'
        env.load()

        assert 'SRC_ABC' not in env.data
        assert 'DEST_ABC' in env.data
        assert env.data['DEST_ABC'] == '456'

        del os.environ['SRC_ABC']
Example #5
0
    def test_load_with_existing_env_vars_from_kwargs(self):
        env = Env(**{'src_abc': 'dest_abc'})
        os.environ['SRC_ABC'] = '456'
        env.load()

        assert 'SRC_ABC' not in env.data
        assert 'DEST_ABC' in env.data
        assert env.data['DEST_ABC'] == '456'

        del os.environ['SRC_ABC']
Example #6
0
    def test_load_with_non_existing_env_vars(self):
        env = Env(keys=["abc", "easy as"])
        os.environ["ABC"] = "123"

        env.load() 

        assert "ABC" in env.data
        assert "EASY_AS" not in env.data
        assert env.data["ABC"] == "123"

        del os.environ['ABC']
Example #7
0
    def test_load_with_provided_overriding_keys(self):
        env = Env(keys=["abc"])

        os.environ["ABC"] = "123"
        os.environ["EASY_AS"] = "do re mi"

        env.load(keys=["easy as"])

        assert "ABC" in env.data
        assert "EASY_AS" in env.data
        assert env.data["ABC"] == "123"
        assert env.data["EASY_AS"] == "do re mi"
Example #8
0
    def test_load_with_non_existing_env_vars_from_args(self):
        env = Env(**{"src_abc": "dest_abc", "src_easy_as": "dest_easy_as"})

        os.environ["SRC_ABC"] = "123"
        env.load() 

        assert "SRC_ABC" not in env.data
        assert "DEST_ABC" in env.data
        assert env.data["DEST_ABC"] == "123"

        assert "SRC_EASY_AS" not in env.data
        assert "DEST_EASY_AS" not in env.data

        del os.environ['SRC_ABC']
Example #9
0
    def test_load_with_non_existing_env_vars_from_args(self):
        env = Env(**{"src_abc": "dest_abc", "src_easy_as": "dest_easy_as"})

        os.environ["SRC_ABC"] = "123"
        env.load()

        assert "SRC_ABC" not in env.data
        assert "DEST_ABC" in env.data
        assert env.data["DEST_ABC"] == "123"

        assert "SRC_EASY_AS" not in env.data
        assert "DEST_EASY_AS" not in env.data

        del os.environ['SRC_ABC']
Example #10
0
    def test_init_with_kwargs_sets_mapping_attribute(self):
        env = Env(**{"src_abc": "dest_abc", "src_easy_as": "dest_easy_as"})

        assert env.mapping == {
            "SRC_ABC": "DEST_ABC",
            "SRC_EASY_AS": "DEST_EASY_AS"
        }
Example #11
0
    def test_register_a_non_special_adapter_with_empty_adapters(self):
        env_adapter = Env()
        config = Config()

        config.register(env_adapter)

        assert len(config.adapters) == 1
        assert config.adapters[0] == env_adapter
Example #12
0
    def test_adapters_setter_raises_if_defaults_is_not_first(self):
        defaults_adapter = Defaults({"abc": "123"})
        env_adapter = Env()
        config = Config()

        with pytest.raises(ValueError):
            # defaults_adapter should always be first
            config.adapters = [env_adapter, defaults_adapter]
Example #13
0
    def test_adapters_setter_raises_if_overrides_is_not_last(self):
        overrides_adapter = Overrides({"abc": "123"})
        env_adapter = Env()
        config = Config()

        with pytest.raises(ValueError):
            # overrides_adapter should always be last
            config.adapters = [overrides_adapter, env_adapter]
Example #14
0
    def test_register_a_second_defaults_overrides_existing_one(self):
        env_adapter = Env()
        defaults_adapter = Defaults({"abc": "123"})
        config = Config()
        config.adapters = [defaults_adapter, env_adapter]

        new_defaults = Defaults({"easy as": "do re mi"})
        config.register(new_defaults)
        assert config.defaults == new_defaults
Example #15
0
    def test_register_a_second_defaults_raises(self):
        env_adapter = Env()
        defaults_adapter = Defaults({"abc": "123"})
        config = Config()

        config.adapters = [defaults_adapter, env_adapter]

        with pytest.raises(ValueError):
            config.register(defaults_adapter)
Example #16
0
    def test_register_a_second_overrides_replaces_existing_one(self):
        env_adapter = Env()
        overrides_adapter = Overrides({"abc": "123"})
        config = Config()
        config.adapters = [env_adapter, overrides_adapter]

        new_overrides = Overrides({"easy as": "do re mi"})
        config.register(new_overrides)
        assert config.overrides == new_overrides
Example #17
0
    def test_register_a_second_overrides_raises(self):
        env_adapter = Env()
        overrides_adapter = Overrides({"abc": "123"})
        config = Config()

        config.adapters = [env_adapter]
        config.register(overrides_adapter)

        with pytest.raises(ValueError):
            config.register(overrides_adapter)
Example #18
0
    def test_register_sets_defaults_adapter_as_first_with_existing_adapters(
            self):
        env_adapter = Env()
        defaults_adapter = Defaults({"abc": "123"})
        config = Config()

        config.adapters = [env_adapter]
        config.register(defaults_adapter)

        assert config.adapters[0] == defaults_adapter
        assert config.adapters[1] == env_adapter
Example #19
0
    def test_load_passes_its_keys_to_env_loading(self):
        env = Env("USER", "PATH")
        config = Config({"PATH": None})

        config.register(env)
        config.load()

        assert "USER" in config
        assert "PATH" in config
        assert config["USER"] == os.environ["USER"]
        assert config["PATH"] == os.environ["PATH"]
Example #20
0
    def test_register_non_special_adapters_protects_order(self):
        env_adapter = Env()
        file_adapter = File('/tmp/test')

        config = Config()
        config.register(env_adapter)
        config.register(file_adapter)

        assert len(config.adapters) == 2
        assert config.adapters[0] == env_adapter
        assert config.adapters[1] == file_adapter
Example #21
0
    def test_register_sets_overrides_adapter_as_last_with_existing_adapters(
            self):
        env_adapter = Env()
        overrides_adapter = Overrides({"abc": "123"})
        config = Config()

        config.adapters = [env_adapter]
        config.register(overrides_adapter)

        assert config.adapters[0] == env_adapter
        assert config.adapters[1] == overrides_adapter
Example #22
0
    def test_register_multiple_adapters(self):
        config = Config()
        defaults_adapter = Defaults()
        env_adapter = Env()
        file_adapter = File('/tmp/test')

        config.register(defaults_adapter, env_adapter, file_adapter)

        assert len(config.adapters) == 3
        assert config.adapters[0] == defaults_adapter
        assert config.adapters[1] == env_adapter
        assert config.adapters[2] == file_adapter
Example #23
0
    def test_register_non_special_adapters_with_overrides(self):
        env_adapter = Env()
        overrides_adapter = Overrides()
        file_adapter = File('/tmp/test')

        config = Config()
        config.adapters = [overrides_adapter]

        config.register(env_adapter)
        config.register(file_adapter)

        assert len(config.adapters) == 3
        assert config.adapters[0] == env_adapter
        assert config.adapters[1] == file_adapter
        assert config.adapters[2] == overrides_adapter
Example #24
0
    def test_load_method_forces_subconfig_adapters_loading(self):
        main_config = Config()

        subconfig = Config()
        subconfig_env_adapter = Env("TEST")
        subconfig.register(subconfig_env_adapter)

        main_config.add_subconfig('test_subconfig', subconfig)

        os.environ["TEST"] = "test"

        assert hasattr(main_config, 'test_subconfig')
        assert main_config.test_subconfig == subconfig
        assert not main_config.test_subconfig

        main_config.load()

        assert 'TEST' in main_config.test_subconfig
        assert main_config.test_subconfig['TEST'] == 'test'

        del os.environ["TEST"]
Example #25
0
    def test_init_formats_input_keys(self):
        env = Env(keys=["abc"])

        assert env.keys == ["ABC"]
Example #26
0
    def test_init_with_args_sets_keys_attribute(self):
        env = Env("abc", "123", "easy_as")

        assert env.keys == ['ABC', '123', 'EASY_AS']
        assert env.mapping == {}
Example #27
0
    def test_adapters_setter_raises_if_a_member_has_invalid_type(self):
        config = Config()

        with pytest.raises(TypeError):
            config.adapters = [Env(), "abc 123"]