def test_get_config_source_order(self): s1 = Dict({'foo': 27}) s2 = Dict({'foo': 28, 'bar': 19}) c = Config(s1, s2) self.assertEqual((27, s1), c.get_with_source('foo')) self.assertEqual((19, s2), c.get_with_source('bar'))
def test_mapped_get_values(self): s = Dict(dict(INSTALL_DIR='/dir'), mapping={"inst_dir": "INSTALL_DIR"}) self.assertEqual('/dir', s.get('INSTALL_DIR')) self.assertEqual('/dir', s.get('inst_dir')) s = Dict(dict(deep=dict(var=23)), mapping={('deepu', 'varu'): ("deep", "var")}) self.assertEqual(dict(var=23), s.get('deep')) self.assertEqual(23, s.get('deep__var')) self.assertEqual(23, s.get(['deepu', 'varu'])) self.assertEqual(23, s.get('deepu__varu')) self.assertEqual(None, s.get('deepu')) self.assertEqual(None, s.get(['deepu', 'var'])) s = Dict(dict(INSTALL_DIR='/dir'), mapping=lambda n: n + "_DIR") self.assertEqual(None, s.get('INSTALL_DIR')) self.assertEqual('/dir', s.get('INSTALL')) self.assertEqual('/dir', s.get(('INSTALL', ))) s = Dict(dict(deep=dict(var=23)), mapping=lambda n: as_path(n) + ("var", )) self.assertEqual(23, s.get('deep')) self.assertEqual(23, s.get(('deep', ))) self.assertEqual(None, s.get('deep__var')) self.assertEqual(None, s.get(['deep', 'var'])) # ????
def test_get_chaning_default_source_order(self): s1 = Dict({'foo': 1, 'bar': 1, 'fun': 1}) s2 = Dict({'foo': 2, 'bar': 2, 'fun': 2}) s3 = Dict({'foo': 3, 'bar': 3, 'fun': 3}) c = Config(s1, s2, s3) self.assertEqual(1, c.foo) c.sources = [s2, s3, s1] self.assertEqual(2, c.bar) c.sources = [s3, s1, s2] self.assertEqual(3, c.fun) self.assertEqual(1, c.foo) self.assertEqual(2, c.bar) self.assertEqual(3, c.fun)
def test_filtered_mapped_get_values(self): ds = Dict(dict(INSTALL_DIR='/dir'), include=["inst_dir"], mapping={'inst_dir': 'INSTALL_DIR'}) self.assertEqual('/dir', ds.get('inst_dir')) self.assertEqual(None, ds.get("INSTALL_DIR"))
def test_get_in_different_source_orders(self): s1 = Dict({'foo': 1, 'bar': 1, 'fun': 1}) s2 = Dict({'foo': 2, 'bar': 2, 'fun': 2}) s3 = Dict({'foo': 3, 'bar': 3, 'fun': 3}) c = Config(s1, s2, s3) self.assertEqual(1, c.foo) self.assertEqual(2, c.get('bar', s2, s3, s1, default=1)) self.assertEqual(3, c.get('fun', s3, s1, s2)) self.assertEqual(1, c.foo) self.assertEqual(2, c.bar) self.assertEqual(3, c.fun) c._cache = {} self.assertEqual(1, c.foo) self.assertEqual(1, c.bar) self.assertEqual(1, c.fun)
def test_get_config_is_cached(self): d = {'foo': 27} c = Config(Dict(d)) self.assertEqual(27, c.foo) d['foo'] = 28 self.assertEqual(27, c.get("foo"))
def test_get_config_as_prop_and_string(self): c = Config(Dict(dict(INSTALL_DIR='/dir', deep=dict(var=27)))) self.assertEqual("/dir", c.get('INSTALL_DIR')) self.assertEqual("/dir", c.INSTALL_DIR) self.assertEqual(27, c.get("deep__var")) self.assertEqual(27, c.deep__var) self.assertEqual(None, c.get('non_existent')) self.assertEqual(None, c.non_existent)
def test_unmapped_unfiltered_get_values(self): s = Dict(dict(INSTALL_DIR='/dir', deep=dict(var=23))) self.assertEqual('/dir', s.get('INSTALL_DIR')) self.assertEqual('/dir', s.get(('INSTALL_DIR', ))) self.assertEqual(dict(var=23), s.get('deep')) self.assertEqual(dict(var=23), s.get(('deep', ))) self.assertEqual(None, s.get('no_key')) self.assertEqual(None, s.get(('no_key', ))) self.assertEqual(23, s.get('deep__var')) self.assertEqual(None, s.get(('deep__var', ))) self.assertEqual(23, s.get(['deep', 'var']))
def test_filtered_get_values(self): s = Dict(dict(INSTALL_DIR='/dir', deep=dict(var=23), tuple=44), include=[ "INSTALL_DIR", ('tuple', ), ('deep', 'var'), 'not_present', 'not__a_path' ]) self.assertEqual('/dir', s.get('INSTALL_DIR')) self.assertEqual('/dir', s.get(('INSTALL_DIR', ))) self.assertEqual(44, s.get('tuple')) self.assertEqual(23, s.get('deep__var')) self.assertEqual(23, s.get(('deep', 'var'))) self.assertEqual(None, s.get('not_present')) self.assertEqual(None, s.get('not__a_path')) self.assertEqual(None, s.get("not in include")) self.assertEqual(None, s.get(('INSTALl_DIR', 'path'))) self.assertEqual(None, s.get(('not', 'a_path')))
def test_get_with_default(self): c = Config(Dict({'foo': 1})) self.assertEqual(1, c.get('foo', default=23)) self.assertEqual(23, c.get('bar', default=23)) self.assertEqual(23, c.bar)
import os from logging import INFO from dotenv import dotenv_values, find_dotenv from rocky.config import Dict, Env, Config env = Env() dot_env_filename = find_dotenv() dot_env = Dict(src=dotenv_values(dot_env_filename), name=dot_env_filename) config = Config(env, dot_env, log_level=INFO) HOST_FRONTEND = config.get("HOST_FRONTEND") HOST_PUBLIC = config.get("HOST_PUBLIC") HOST_BACKEND = config.get("HOST_BACKEND") STRIPE_PUBLIC_KEY = config.get("STRIPE_PUBLIC_KEY") STRIPE_PRIVATE_KEY = config.get("STRIPE_PRIVATE_KEY") WEBDRIVER_TYPE = config.get('WEBDRIVER_TYPE', default='CHROME') KEEP_BROWSER = config.get('KEEP_BROWSER') SELENIUM_BASE_TIMEOUT = float( config.get('SELENIUM_BASE_TIMEOUT', default='4.0')) SLEEP = 0.2