1
from lexicon.common.options_handler import *
3
def test_env_auth_options_reads_only_specified_env(monkeypatch):
4
monkeypatch.setenv('LEXICON_FOO_USERNAME','test_username')
5
env_auth_options('foo')['auth_username'] == 'test_username'
8
def test_SafeOptions_update_shouldnt_override_when_None():
9
options = SafeOptions()
10
options['test'] = 'test'
11
assert options['test'] == 'test'
12
options.update({'test':None})
13
assert options['test'] == 'test'
15
def test_SafeOptions_update_should_handle_empty_update():
16
options = SafeOptions()
17
options['test'] = 'test'
18
assert options['test'] == 'test'
20
assert options['test'] == 'test'
22
def test_OptionsWithFallback_returns_none_when_no_fallbackFn_set():
23
options = SafeOptionsWithFallback()
24
assert options['test'] == None
26
def test_OptionsWithFallback_with_only_data_should_return():
27
options = SafeOptionsWithFallback({'foo': 'bar'})
28
assert options['test'] == None
29
assert options['foo'] == 'bar'
32
def test_OptionsWithFallback_returns_placeholder_when_fallbackFn_set():
33
options = SafeOptionsWithFallback({}, lambda x: 'placeholder_' + x)
34
options['exists'] = 'test_value'
35
assert options['test_key1'] == 'placeholder_test_key1'
36
assert options.get('test_key2') == 'placeholder_test_key2'
37
assert options['exists'] == 'test_value'
38
assert options.get('exists') == 'test_value'
41
def test_OptionsWithFallback_chain(monkeypatch):
42
base_options = SafeOptionsWithFallback({}, lambda x: 'placeholder_' + x)
43
base_options['test1'] = 'base'
44
base_options['test2'] = 'base'
45
base_options['test3'] = 'base'
46
base_options['auth_test3'] = 'base'
47
base_options['auth_test4'] = 'base'
49
provider_options = SafeOptions()
50
provider_options['test2'] = 'provider'
51
provider_options['test3'] = 'provider'
52
provider_options['auth_test3'] = 'provider'
53
provider_options['auth_test4'] = 'provider'
56
monkeypatch.setenv('LEXICON_FOO_TEST3','env')
57
monkeypatch.setenv('LEXICON_FOO_TEST4','env')
58
env_options = env_auth_options('foo')
60
cli_options = SafeOptions()
61
cli_options['auth_test4'] = 'cli'
65
base_options.update(provider_options)
66
base_options.update(env_options)
67
base_options.update(cli_options)
70
assert base_options['test0'] == 'placeholder_test0'
71
assert base_options['test1'] == 'base'
72
assert base_options['test2'] == 'provider'
73
assert base_options['test3'] == 'provider'
74
assert base_options['auth_test3'] == 'env'
75
assert base_options['auth_test4'] == 'cli'