File: test_configuration_Configuration.py

package info (click to toggle)
python-milc 1.9.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 788 kB
  • sloc: python: 1,868; sh: 55; makefile: 3
file content (84 lines) | stat: -rw-r--r-- 2,517 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
"""Unit tests for milc.configuration.Configuration.
"""
import milc.configuration


def configuration_setup():
    """Setup a simple milc.configuration.Configuration object for testing.
    """
    config = milc.configuration.Configuration()
    config['a']['a'] = True
    config['a']['a'] = True
    config['a']['b'] = False
    config['user']['d'] = 'arbitrary string'
    config['user']['d'] = 'arbitrary string'

    return config


def test_Configuration_dictionary():
    """Test Configuration dictionary access
    """
    config = configuration_setup()

    assert config['a']['a'] is True
    assert config['a']['b'] is False
    assert config['a']['c'] is None


def test_Configuration_dictionary_write():
    """Test that Configuration dictionary writes can be read as attributes.
    """
    config = milc.configuration.Configuration()
    config['a']['a'] = True
    assert config.a.a is True


def test_Configuration_attribute():
    """Test Configuration attribute access
    """
    config = configuration_setup()

    assert config.a.a is True
    assert config.a.b is False
    assert config.a.c is None


def test_Configuration_attribute_write():
    """Test that Configuration attribute writes can be read as a dictionary method.
    """
    config = milc.configuration.Configuration()
    config.a.a = True
    assert config['a']['a'] is True


def test_Configuration_iteration():
    """Make sure we can iterate over our stored volues.
    """
    config = configuration_setup()

    for section, section_dict in config.items():
        if section == 'a':
            for key, value in section_dict.items():
                if key == 'a':
                    assert value is True
                elif key == 'b':
                    assert value is False
                else:
                    raise KeyError('Unexpected key found in configuration: ' + section + '.' + key)
        elif section == 'user':
            for key, value in section_dict.items():
                if key == 'd':
                    assert value == 'arbitrary string'
                else:
                    raise KeyError('Unexpected key found in configuration: ' + section + '.' + key)
        else:
            raise KeyError('Unexpected section found in configuration: ' + section)


def test_Configuration_parent_fallback():
    """Make sure that we properly pull in the parent value when the local value doesn't exist.
    """
    config = configuration_setup()

    assert config.a.d == 'arbitrary string'