| @@ 781-801 (lines=21) @@ | ||
| 778 | val = b.pop(['a', 'b']) |
|
| 779 | self.assertEqual(val, 1) |
|
| 780 | ||
| 781 | def test_pop_with_keys_list_and_no_keypath_separator(self): |
|
| 782 | d = { |
|
| 783 | 'a': { |
|
| 784 | 'b': 1, |
|
| 785 | } |
|
| 786 | } |
|
| 787 | b = KeypathDict(d, keypath_separator=None) |
|
| 788 | ||
| 789 | val = b.pop(['a', 'c'], 2) |
|
| 790 | self.assertEqual(val, 2) |
|
| 791 | with self.assertRaises(KeyError): |
|
| 792 | val = b.pop(['a', 'c']) |
|
| 793 | self.assertEqual(b.get('a'), { 'b': 1 }) |
|
| 794 | ||
| 795 | val = b.pop(['x', 'y'], 1) |
|
| 796 | self.assertEqual(val, 1) |
|
| 797 | with self.assertRaises(KeyError): |
|
| 798 | val = b.pop(['x', 'y']) |
|
| 799 | ||
| 800 | val = b.pop(['a', 'b']) |
|
| 801 | self.assertEqual(val, 1) |
|
| 802 | ||
| 803 | def test_setdefault_with_1_key(self): |
|
| 804 | d = { |
|
| @@ 759-779 (lines=21) @@ | ||
| 756 | with self.assertRaises(KeyError): |
|
| 757 | val = b.pop('x.y') |
|
| 758 | ||
| 759 | def test_pop_with_keys_list(self): |
|
| 760 | d = { |
|
| 761 | 'a': { |
|
| 762 | 'b': 1, |
|
| 763 | } |
|
| 764 | } |
|
| 765 | b = KeypathDict(d) |
|
| 766 | ||
| 767 | val = b.pop(['a', 'c'], 2) |
|
| 768 | self.assertEqual(val, 2) |
|
| 769 | with self.assertRaises(KeyError): |
|
| 770 | val = b.pop(['a', 'c']) |
|
| 771 | self.assertEqual(b.get('a'), { 'b': 1 }) |
|
| 772 | ||
| 773 | val = b.pop(['x', 'y'], 1) |
|
| 774 | self.assertEqual(val, 1) |
|
| 775 | with self.assertRaises(KeyError): |
|
| 776 | val = b.pop(['x', 'y']) |
|
| 777 | ||
| 778 | val = b.pop(['a', 'b']) |
|
| 779 | self.assertEqual(val, 1) |
|
| 780 | ||
| 781 | def test_pop_with_keys_list_and_no_keypath_separator(self): |
|
| 782 | d = { |
|