from py.test import raises from graphene.utils import ProxySnakeDict def test_proxy_snake_dict(): my_data = {'one': 1, 'two': 2, 'none': None, 'threeOrFor': 3, 'inside': {'otherCamelCase': 3}} p = ProxySnakeDict(my_data) assert 'one' in p assert 'two' in p assert 'threeOrFor' in p assert 'none' in p assert len(p) == len(my_data) assert p['none'] is None assert p.get('none') is None assert p.get('none_existent') is None assert 'three_or_for' in p assert p.get('three_or_for') == 3 assert 'inside' in p assert 'other_camel_case' in p['inside'] assert sorted(p.items()) == sorted(list([('inside', ProxySnakeDict({'other_camel_case': 3})), ('none', None), ('three_or_for', 3), ('two', 2), ('one', 1)])) def test_proxy_snake_dict_as_kwargs(): my_data = {'myData': 1} p = ProxySnakeDict(my_data) def func(**kwargs): return kwargs.get('my_data') assert func(**p) == 1 def test_proxy_snake_dict_repr(): my_data = {'myData': 1} p = ProxySnakeDict(my_data) assert repr(p) == "" def test_proxy_snake_dict_set(): p = ProxySnakeDict({}) with raises(TypeError): p['a'] = 2 def test_proxy_snake_dict_delete(): p = ProxySnakeDict({}) with raises(TypeError): del p['a']