def test_options_recursive_inherit():
    options = OptionsDict({
        'key': {
            'subkey': {
                'subsubkey': 2
            },
        },
    })

    options.inherit(
        OptionsDict({
            'key': {
                'subkey': {
                    'subsubkey': 1
                },
                'kept': 1,
            },
        }))

    assert options == {
        'key': {
            'subkey': {
                'subsubkey': 2
            },
            'kept': 1,
        },
    }
def test_options_inherit():
    options = OptionsDict({"overridden": 1, "kept": 1})
    suboptions = OptionsDict({"overridden": 2, "new": 1})

    suboptions.inherit(options)

    assert suboptions == {"overridden": 2, "new": 1, "kept": 1}
def test_options_inherit():
    options = OptionsDict({'overridden': 1, 'kept': 1})
    suboptions = OptionsDict({'overridden': 2, 'new': 1})

    suboptions.inherit(options)

    assert suboptions == {
        'overridden': 2,
        'new': 1,
        'kept': 1,
    }
def test_options_recursive_inherit():
    options = OptionsDict({"key": {"subkey": {"subsubkey": 2}}})

    options.inherit(OptionsDict({"key": {"subkey": {"subsubkey": 1}, "kept": 1}}))

    assert options == {"key": {"subkey": {"subsubkey": 2}, "kept": 1}}