Code Duplication    Length = 23-33 lines in 2 locations

starstruct/tests/test_elementvariable.py 2 locations

@@ 154-186 (lines=33) @@
151
            struct.pack('H', 0) + \
152
            struct.pack('H', 0)
153
154
    def test_byte_length_some_data(self):
155
        TestStruct = Message('TestStruct', [
156
            ('length_in_objects', 'H', 'vardata'),
157
            ('vardata', self.VarTest, 'length_in_objects'),
158
            (b'length_in_bytes', 'H', 'bytesdata'),
159
            ('bytesdata', self.VarTest, b'length_in_bytes'),
160
161
        ])
162
        test_data_no_data = {
163
            'length_in_objects': 1,
164
            'vardata': [
165
                {'x': 255, 'y': 127},
166
            ],
167
            'length_in_bytes': 2,
168
            'bytesdata': [
169
                {'x': 254, 'y': 126},
170
            ],
171
        }
172
173
        made = TestStruct.make(test_data_no_data)
174
        assert made.length_in_objects == 1
175
        assert made.vardata == [
176
            self.VarTest.make(
177
                {'x': 255, 'y': 127}
178
            )]
179
        assert made.length_in_bytes == 2
180
        assert made.bytesdata == [
181
            self.VarTest.make(
182
                {'x': 254, 'y': 126}
183
            )]
184
185
        packed = TestStruct.pack(test_data_no_data)
186
        assert packed == \
187
            struct.pack('H', 1) + \
188
            struct.pack('BB', 255, 127) + \
189
            struct.pack('H', 2) + \
@@ 128-150 (lines=23) @@
125
            (struct.pack('B', 5) + struct.pack('H', 10)) + \
126
            (struct.pack('B', 0) + struct.pack('H', 0)) * 2
127
128
    def test_byte_length_no_data(self):
129
        TestStruct = Message('TestStruct', [
130
            ('length_in_objects', 'H', 'vardata'),
131
            ('vardata', self.VarTest, 'length_in_objects'),
132
            (b'length_in_bytes', 'H', 'bytesdata'),
133
            ('bytesdata', self.VarTest, b'length_in_bytes'),
134
135
        ])
136
        test_data_no_data = {
137
            'length_in_objects': 0,
138
            'vardata': [],
139
            'length_in_bytes': 0,
140
            'bytesdata': [],
141
        }
142
143
        made = TestStruct.make(test_data_no_data)
144
        assert made.length_in_objects == 0
145
        assert made.vardata == []
146
        assert made.length_in_bytes == 0
147
        assert made.bytesdata == []
148
149
        packed = TestStruct.pack(test_data_no_data)
150
        assert packed == \
151
            struct.pack('H', 0) + \
152
            struct.pack('H', 0)
153