예제 #1
0
def test_box_modify_at_depth():
    bx = Diot(**test_dict)
    assert 'key1' in bx
    assert 'key2' not in bx
    bx['Key 2'].new_thing = "test"
    assert bx['Key 2'].new_thing == "test"
    bx['Key 2'].new_thing += "2"
    assert bx['Key 2'].new_thing == "test2"
    assert bx['Key 2']['new_thing'] == "test2"
    bx.__setattr__('key1', 1)
    assert bx['key1'] == 1
    bx.__delattr__('key1')
    assert 'key1' not in bx
예제 #2
0
def test_box():
    bx = Diot(**test_dict)
    assert bx.key1 == test_dict['key1']
    assert dict(getattr(bx, 'Key 2')) == test_dict['Key 2']
    setattr(bx, 'TEST_KEY', 'VALUE')
    assert bx.TEST_KEY == 'VALUE'

    delattr(bx, 'TEST_KEY')
    assert 'TEST_KEY' not in bx
    assert isinstance(bx['Key 2'].Key4, Diot)
    assert "'key1': 'value1'" in str(bx)
    assert repr(bx).startswith("Diot({")

    bx3 = Diot(a=4)
    setattr(bx3, 'key', 2)
    assert bx3.key == 2
    bx3.__setattr__("Test", 3)
    assert bx3.Test == 3