Code Duplication    Length = 28-29 lines in 2 locations

starstruct/tests/test_elementvariable.py 2 locations

@@ 59-87 (lines=29) @@
56
        packed = TestStruct.pack(test_data_no_data)
57
        assert packed == struct.pack('H', 0) + (struct.pack('B', 0) + struct.pack('H', 0)) * num_repeats
58
59
    def test_some_data(self):
60
        num_repeats = 3
61
62
        TestStruct = Message('TestStruct', [
63
            ('length', 'H', 'vardata'),
64
            ('vardata', self.VarTest, 'length'),
65
            ('repeated_data', self.Repeated, num_repeats),
66
        ])
67
68
        test_data = {
69
            'length': 2,
70
            'vardata': [
71
                {'x': 1, 'y': 2},
72
                {'x': 3, 'y': 4},
73
            ],
74
            'repeated_data': [
75
                {'x': 7, 'z': 13},
76
                {'x': 2, 'z': 27},
77
                {'x': 6, 'z': 11},
78
            ],
79
        }
80
81
        made = TestStruct.make(test_data)
82
        assert made.length == 2
83
        assert len(made.vardata) == 2
84
        assert len(made.repeated_data) == 3
85
86
        packed = TestStruct.pack(test_data)
87
        assert packed == struct.pack('H', 2) + \
88
            struct.pack('BB', 1, 2) + \
89
            struct.pack('BB', 3, 4) + \
90
            (struct.pack('B', 7) + struct.pack('H', 13)) + \
@@ 94-121 (lines=28) @@
91
            (struct.pack('B', 2) + struct.pack('H', 27)) + \
92
            (struct.pack('B', 6) + struct.pack('H', 11))
93
94
    def test_not_all_fixed_data(self):
95
        num_repeats = 5
96
97
        TestStruct = Message('TestStruct', [
98
            ('length', 'H', 'vardata'),
99
            ('vardata', self.VarTest, 'length'),
100
            ('repeated_data', self.Repeated, num_repeats),
101
        ])
102
103
        test_data = {
104
            'length': 1,
105
            'vardata': [
106
                {'x': 255, 'y': 127},
107
            ],
108
            'repeated_data': [
109
                {'x': 6, 'z': 12},
110
                {'x': 1, 'z': 26},
111
                {'x': 5, 'z': 10},
112
            ],
113
        }
114
115
        made = TestStruct.make(test_data)
116
        assert made.length == 1
117
        assert len(made.vardata) == 1
118
        assert len(made.repeated_data) == 3
119
120
        packed = TestStruct.pack(test_data)
121
        assert packed == struct.pack('H', 1) + \
122
            struct.pack('BB', 255, 127) + \
123
            (struct.pack('B', 6) + struct.pack('H', 12)) + \
124
            (struct.pack('B', 1) + struct.pack('H', 26)) + \