Beispiel #1
0
def test_digit_in_dict():
    data = {
        'a': {
            '0': {
                'c': 2
            },
            'a': {
                'c': 4
            }
        },
    }
    result = {'a.0.c': 2, 'a.a.c': 4}

    d = Dotli(list_brackets=False)
    assert d.flatten(data) == result
    assert data == d.unflatten(result)

    data = {
        'a': {
            '0': 0,
            'a': 1
        },
    }
    result = {'a.0': 0, 'a.a': 1}

    d = Dotli(list_brackets=False)
    assert d.flatten(data) == result
    assert data == d.unflatten(result)
Beispiel #2
0
def test_short():
    data = ['1', '2', '3']
    result = {'0': '1', '1': '2', '2': '3', }

    d = Dotli()
    assert d.flatten(data) == result
    assert data == d.unflatten(result)

    d = Dotli(list_brackets=True)
    result = {'[0]': '1', '[1]': '2', '[2]': '3', }
    assert d.flatten(data) == result
    assert data == d.unflatten(result)
Beispiel #3
0
def test_deep_nested():
    data = {'a': {'b': {'0': 1, 'c': 2}, 'd': 'e'}}
    result = {'a.b.0': 1, 'a.b.c': 2, 'a.d': 'e'}

    d = Dotli()
    assert d.flatten(data) == result
    assert data == d.unflatten(result)

    d = Dotli(separator='-')
    result = {'a-b-0': 1, 'a-b-c': 2, 'a-d': 'e'}
    assert d.flatten(data) == result
    assert data == d.unflatten(result)
Beispiel #4
0
def test_nested():
    data = {'a': {'d': 'e'}, 'b': {'f': 'g', 'h': 'i'}}
    result = {'a.d': 'e', 'b.f': 'g', 'b.h': 'i'}

    d = Dotli()
    assert d.flatten(data) == result
    assert data == d.unflatten(result)
Beispiel #5
0
def test_nested():
    data = [['a', 'b', 'c'], ['d', 'e', 'f']]
    result = {'0.0': 'a', '0.1': 'b', '0.2': 'c', '1.0': 'd', '1.1': 'e', '1.2': 'f'}

    d = Dotli()
    assert d.flatten(data) == result
    assert data == d.unflatten(result)

    d = Dotli(list_brackets=True)
    result = {'[0].[0]': 'a', '[0].[1]': 'b', '[0].[2]': 'c', '[1].[0]': 'd', '[1].[1]': 'e', '[1].[2]': 'f'}
    assert d.flatten(data) == result
    assert data == d.unflatten(result)

    d = Dotli(list_brackets=True, separator='-')
    result = {'[0]-[0]': 'a', '[0]-[1]': 'b', '[0]-[2]': 'c', '[1]-[0]': 'd', '[1]-[1]': 'e', '[1]-[2]': 'f'}
    assert d.flatten(data) == result
    assert data == d.unflatten(result)
Beispiel #6
0
def test_short():
    data = {'a': 1, 'b': 2}
    result = {
        'a': 1,
        'b': 2,
    }

    d = Dotli()
    assert d.flatten(data) == result
    assert data == d.unflatten(result)
Beispiel #7
0
def test_int_keys_dict():
    data = {
        'a': {
            '1': [1],
            '2': ['e1'],
        }
    }
    result = {'a.1.[0]': 1, 'a.2.[0]': 'e1'}

    d = Dotli(list_brackets=True)
    assert d.flatten(data) == result
    assert data == d.unflatten(result)
Beispiel #8
0
def test_fill_value():
    d = Dotli(fill_value_list=None)
    assert d.unflatten({'0': 0, '2': 0}) == [0, None, 0]