Code Duplication    Length = 15-19 lines in 3 locations

tests/test_keypath_dict.py 3 locations

@@ 730-748 (lines=19) @@
727
        self.assertEqual(b['x.c'], 1)
728
        self.assertEqual(b['x.d'], 2)
729
730
    def test_setdefault_with_3_keys(self):
731
        d = {
732
            'y': {
733
                'z': {
734
                    'a': None,
735
                    'b': 0,
736
                    'c': 1,
737
                },
738
            },
739
        }
740
        b = KeypathDict(d)
741
        b.setdefault('y.z.a', 2)
742
        b.setdefault('y.z.b', 2)
743
        b.setdefault('y.z.c', 2)
744
        b.setdefault('y.z.d', 2)
745
        self.assertEqual(b['y.z.a'], None)
746
        self.assertEqual(b['y.z.b'], 0)
747
        self.assertEqual(b['y.z.c'], 1)
748
        self.assertEqual(b['y.z.d'], 2)
749
@@ 712-728 (lines=17) @@
709
        self.assertEqual(b['c'], 1)
710
        self.assertEqual(b['d'], 2)
711
712
    def test_setdefault_with_2_keys(self):
713
        d = {
714
            'x': {
715
                'a': None,
716
                'b': 0,
717
                'c': 1,
718
            },
719
        }
720
        b = KeypathDict(d)
721
        b.setdefault('x.a', 2)
722
        b.setdefault('x.b', 2)
723
        b.setdefault('x.c', 2)
724
        b.setdefault('x.d', 2)
725
        self.assertEqual(b['x.a'], None)
726
        self.assertEqual(b['x.b'], 0)
727
        self.assertEqual(b['x.c'], 1)
728
        self.assertEqual(b['x.d'], 2)
729
730
    def test_setdefault_with_3_keys(self):
731
        d = {
@@ 696-710 (lines=15) @@
693
        with self.assertRaises(KeyError):
694
            val = b.pop(['x', 'y'])
695
696
    def test_setdefault_with_1_key(self):
697
        d = {
698
            'a': None,
699
            'b': 0,
700
            'c': 1,
701
        }
702
        b = KeypathDict(d)
703
        b.setdefault('a', 2)
704
        b.setdefault('b', 2)
705
        b.setdefault('c', 2)
706
        b.setdefault('d', 2)
707
        self.assertEqual(b['a'], None)
708
        self.assertEqual(b['b'], 0)
709
        self.assertEqual(b['c'], 1)
710
        self.assertEqual(b['d'], 2)
711
712
    def test_setdefault_with_2_keys(self):
713
        d = {