コード例 #1
0
 def test_multiple_lookups_accepted(self):
     d = {'a': {'b': 5, 'z': 20}, 'c': {'d': 3}, 'x': 40}
     self.assertEqual(
         pluck(d, 'a.b', 'c.e', 'c.d', 'x', default=None),
         (5, None, 3, 40),
     )
コード例 #2
0
 def test_pluck_top_level(self):
     d = {'a': {'b': 5, 'z': 20}, 'c': {'d': 3}, 'x': 40}
     self.assertEqual(pluck(d, 'x'), 40)
     self.assertEqual(pluck(d, 'c'), {'d': 3})
コード例 #3
0
 def test_specifying_default_value(self):
     d = {'a': {'b': 5, 'z': 20}, 'c': {'d': 3}, 'x': 40}
     self.assertEqual(pluck(d, 'c.e', default=None), None)
     self.assertEqual(pluck(d, 'y.z', default=0), 0)
コード例 #4
0
 def test_specifying_separator(self):
     d = {'a': {'b': 5, 'z': 20}, 'c': {'d': 3}, 'x': 40}
     self.assertEqual(pluck(d, 'c/d', sep='/'), 3)
     self.assertEqual(pluck(d, 'a.b', sep='.'), 5)
     self.assertEqual(pluck(d, 'a z', sep=' '), 20)
コード例 #5
0
 def test_exception_on_missing_item(self):
     d = {'a': {'b': 5, 'z': 20}, 'c': {'d': 3}, 'x': 40}
     with self.assertRaises(KeyError):
         pluck(d, 'c.e')
     with self.assertRaises(KeyError):
         pluck(d, 'z')
コード例 #6
0
 def test_pluck_many_levels_deep(self):
     d = {'a': {'b': {'c': {'d': {'e': 4}}}}}
     self.assertEqual(pluck(d, 'a.b.c'), {'d': {'e': 4}})
     self.assertEqual(pluck(d, 'a.b.c.d'), {'e': 4})
     self.assertEqual(pluck(d, 'a.b.c.d.e'), 4)
コード例 #7
0
 def test_pluck_one_level_deep(self):
     d = {'a': {'b': 5, 'z': 20}, 'c': {'d': 3}, 'x': 40}
     self.assertEqual(pluck(d, 'a.b'), 5)
     self.assertEqual(pluck(d, 'c.d'), 3)