def test_read_from_source_file(): f = io.StringIO("""export foo='yada ' ; export flag= ' on '; export switch='on'; export var1 =' spam'; export var2='eg gs' ; export workers=16; export boost=0.2; garbled: 'sh'pam' """) env = EnvWrapper.from_source_file(f, inline_prefix='export', inline_suffix=';', value_delimiter='\'', bool_values=('off', 'on')) assert all(('FOO' in env, 'FLAG' in env, 'VAR1' in env, 'VAR2' in env)) assert env.FOO == 'yada ' assert env.FLAG == ' on ' assert not isinstance(env.FLAG, bool) assert env.VAR1 == ' spam' assert env.VAR2 == 'eg gs' assert env.SWITCH is True assert env.WORKERS == int('16') assert env.BOOST == float('0.2') assert 'GARBLED' not in env
def test_read_from_source_file_undelimited_values(): f = io.StringIO(""" foo: yada flag: off var1 :spam garbled: sh'pam var2: eg gs var3: 42 var4: 7.09 """) env = EnvWrapper.from_source_file(f, delimiter=':', bool_values=('off', 'on')) assert all(('FOO' in env, 'FLAG' in env, 'VAR1' in env, 'VAR2' in env)) assert env.VAR2 == 'eg gs' assert env.FLAG is False assert env.GARBLED == 'sh\'pam' assert env.VAR3 == int('42') assert env.VAR4 == float('7.09')