def test_strict_mode(self): d = {'1': {'2': {'3': 4}}} try: get(d, '1', '2', '3', '4', strict=True) self.fail() except Exception as e: self.assertIs(type(e), KeyError)
def test_default(self): d = {'1': {'2': {'3': 4}}} self.assertIs(get(d, '1', '2', '3', '4'), None) self.assertIs(get(d, '1', '2', '3', '4', default=5), 5)
def test_attribute(self): d = {'1': {'2': Mock(a3=3, a4={5: Mock(a6=6)})}} self.assertEqual(get(d, '1', '2', 'a3'), 3) self.assertEqual(get(d, '1', '2', 'a4', '5', 'a6'), 6)
def test_implicit_type(self): d = {'1': {'2': [3, 4, 5, {'6': {'7': 8}}]}} self.assertEqual(get(d, 1, 2, '0'), 3) self.assertEqual(get(d, 1, 2, '3', 6, 7), 8)
def test_list2(self): d = [[[[1]]], [2, [3]]] self.assertEqual(get(d, 0, 0, 0, 0), 1) self.assertEqual(get(d, 1, 1, 0), 3)
def test_list(self): d = {'1': {'2': [3, 4, 5, {'6': {'7': 8}}]}} self.assertEqual(get(d, '1', '2', 0), 3) self.assertEqual(get(d, '1', '2', 1), 4) self.assertEqual(get(d, '1', '2', 2), 5) self.assertEqual(get(d, '1', '2', 3, '6', '7'), 8)
def test_simple(self): d = {'1': {'2': {'3': 3}}} self.assertEqual(get(d, '1', '2', '3'), 3)