~ubuntu-branches/debian/sid/lexicon/sid

« back to all changes in this revision

Viewing changes to tests/common/test_options_handler.py

  • Committer: Package Import Robot
  • Author(s): Ana Custura
  • Date: 2018-03-02 22:36:08 UTC
  • Revision ID: package-import@ubuntu.com-20180302223608-4e2sghral3uifgq7
Tags: upstream-2.1.21
ImportĀ upstreamĀ versionĀ 2.1.21

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
from lexicon.common.options_handler import *
 
2
 
 
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'
 
6
 
 
7
 
 
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'
 
14
 
 
15
def test_SafeOptions_update_should_handle_empty_update():
 
16
    options = SafeOptions()
 
17
    options['test'] = 'test'
 
18
    assert options['test'] == 'test'
 
19
    options.update({})
 
20
    assert options['test'] == 'test'
 
21
 
 
22
def test_OptionsWithFallback_returns_none_when_no_fallbackFn_set():
 
23
    options = SafeOptionsWithFallback()
 
24
    assert options['test'] == None
 
25
 
 
26
def test_OptionsWithFallback_with_only_data_should_return():
 
27
    options = SafeOptionsWithFallback({'foo': 'bar'})
 
28
    assert options['test'] == None
 
29
    assert options['foo'] == 'bar'
 
30
 
 
31
 
 
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'
 
39
 
 
40
 
 
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'
 
48
 
 
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'
 
54
 
 
55
 
 
56
    monkeypatch.setenv('LEXICON_FOO_TEST3','env')
 
57
    monkeypatch.setenv('LEXICON_FOO_TEST4','env')
 
58
    env_options = env_auth_options('foo')
 
59
 
 
60
    cli_options = SafeOptions()
 
61
    cli_options['auth_test4'] = 'cli'
 
62
 
 
63
 
 
64
    #merge them together
 
65
    base_options.update(provider_options)
 
66
    base_options.update(env_options)
 
67
    base_options.update(cli_options)
 
68
 
 
69
 
 
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'