comparison tests/test-simplemerge.py @ 48590:12ac4401ff7d

simplemerge: simplify and rename `render_markers()` `render_markers()` now always renders minimized 2-way markers, so let's simplify and rename it accordingly. Differential Revision: https://phab.mercurial-scm.org/D11979
author Martin von Zweigbergk <martinvonz@google.com>
date Tue, 11 Jan 2022 21:56:27 -0800
parents 2dbee604a4f0
children 7ed4c4753891
comparison
equal deleted inserted replaced
48589:69e76b2aad3d 48590:12ac4401ff7d
178 self.assertEqual(list(m3.find_sync_regions()), [(0, 0, 2, 2, 0, 0)]) 178 self.assertEqual(list(m3.find_sync_regions()), [(0, 0, 2, 2, 0, 0)])
179 179
180 self.assertEqual(list(m3.merge_regions()), [(b'a', 0, 2)]) 180 self.assertEqual(list(m3.merge_regions()), [(b'a', 0, 2)])
181 181
182 self.assertEqual( 182 self.assertEqual(
183 simplemerge.render_markers(m3), ([b'aaa', b'bbb'], False) 183 simplemerge.render_minimized(m3), ([b'aaa', b'bbb'], False)
184 ) 184 )
185 185
186 def test_no_conflicts(self): 186 def test_no_conflicts(self):
187 """No conflicts because only one side changed""" 187 """No conflicts because only one side changed"""
188 m3 = Merge3( 188 m3 = Merge3(
205 [b'aaa\n', b'bbb\n', b'222\n'], 205 [b'aaa\n', b'bbb\n', b'222\n'],
206 [b'aaa\n', b'bbb\n'], 206 [b'aaa\n', b'bbb\n'],
207 ) 207 )
208 208
209 self.assertEqual( 209 self.assertEqual(
210 b''.join(simplemerge.render_markers(m3)[0]), b'aaa\nbbb\n222\n' 210 b''.join(simplemerge.render_minimized(m3)[0]), b'aaa\nbbb\n222\n'
211 ) 211 )
212 212
213 def test_append_b(self): 213 def test_append_b(self):
214 m3 = Merge3( 214 m3 = Merge3(
215 [b'aaa\n', b'bbb\n'], 215 [b'aaa\n', b'bbb\n'],
216 [b'aaa\n', b'bbb\n'], 216 [b'aaa\n', b'bbb\n'],
217 [b'aaa\n', b'bbb\n', b'222\n'], 217 [b'aaa\n', b'bbb\n', b'222\n'],
218 ) 218 )
219 219
220 self.assertEqual( 220 self.assertEqual(
221 b''.join(simplemerge.render_markers(m3)[0]), b'aaa\nbbb\n222\n' 221 b''.join(simplemerge.render_minimized(m3)[0]), b'aaa\nbbb\n222\n'
222 ) 222 )
223 223
224 def test_append_agreement(self): 224 def test_append_agreement(self):
225 m3 = Merge3( 225 m3 = Merge3(
226 [b'aaa\n', b'bbb\n'], 226 [b'aaa\n', b'bbb\n'],
227 [b'aaa\n', b'bbb\n', b'222\n'], 227 [b'aaa\n', b'bbb\n', b'222\n'],
228 [b'aaa\n', b'bbb\n', b'222\n'], 228 [b'aaa\n', b'bbb\n', b'222\n'],
229 ) 229 )
230 230
231 self.assertEqual( 231 self.assertEqual(
232 b''.join(simplemerge.render_markers(m3)[0]), b'aaa\nbbb\n222\n' 232 b''.join(simplemerge.render_minimized(m3)[0]), b'aaa\nbbb\n222\n'
233 ) 233 )
234 234
235 def test_append_clash(self): 235 def test_append_clash(self):
236 m3 = Merge3( 236 m3 = Merge3(
237 [b'aaa\n', b'bbb\n'], 237 [b'aaa\n', b'bbb\n'],
238 [b'aaa\n', b'bbb\n', b'222\n'], 238 [b'aaa\n', b'bbb\n', b'222\n'],
239 [b'aaa\n', b'bbb\n', b'333\n'], 239 [b'aaa\n', b'bbb\n', b'333\n'],
240 ) 240 )
241 241
242 ml, conflicts = simplemerge.render_markers( 242 ml, conflicts = simplemerge.render_minimized(
243 m3, 243 m3,
244 name_a=b'a', 244 name_a=b'a',
245 name_b=b'b', 245 name_b=b'b',
246 start_marker=b'<<', 246 start_marker=b'<<',
247 mid_marker=b'--', 247 mid_marker=b'--',
257 [b'aaa\n', b'bbb\n'], 257 [b'aaa\n', b'bbb\n'],
258 [b'aaa\n', b'222\n', b'bbb\n'], 258 [b'aaa\n', b'222\n', b'bbb\n'],
259 [b'aaa\n', b'222\n', b'bbb\n'], 259 [b'aaa\n', b'222\n', b'bbb\n'],
260 ) 260 )
261 261
262 ml, conflicts = simplemerge.render_markers( 262 ml, conflicts = simplemerge.render_minimized(
263 m3, 263 m3,
264 name_a=b'a', 264 name_a=b'a',
265 name_b=b'b', 265 name_b=b'b',
266 start_marker=b'<<', 266 start_marker=b'<<',
267 mid_marker=b'--', 267 mid_marker=b'--',
298 (b'conflict', ([], [b'111\n'], [b'222\n'])), 298 (b'conflict', ([], [b'111\n'], [b'222\n'])),
299 (b'unchanged', [b'bbb\n']), 299 (b'unchanged', [b'bbb\n']),
300 ], 300 ],
301 ) 301 )
302 302
303 ml, conflicts = simplemerge.render_markers( 303 ml, conflicts = simplemerge.render_minimized(
304 m3, 304 m3,
305 name_a=b'a', 305 name_a=b'a',
306 name_b=b'b', 306 name_b=b'b',
307 start_marker=b'<<', 307 start_marker=b'<<',
308 mid_marker=b'--', 308 mid_marker=b'--',
347 ) 347 )
348 348
349 def test_merge_poem(self): 349 def test_merge_poem(self):
350 """Test case from diff3 manual""" 350 """Test case from diff3 manual"""
351 m3 = Merge3(TZU, LAO, TAO) 351 m3 = Merge3(TZU, LAO, TAO)
352 ml, conflicts = simplemerge.render_markers(m3, b'LAO', b'TAO') 352 ml, conflicts = simplemerge.render_minimized(m3, b'LAO', b'TAO')
353 self.log(b'merge result:') 353 self.log(b'merge result:')
354 self.log(b''.join(ml)) 354 self.log(b''.join(ml))
355 self.assertEqual(ml, MERGED_RESULT) 355 self.assertEqual(ml, MERGED_RESULT)
356 356
357 def test_binary(self): 357 def test_binary(self):
365 m3 = Merge3( 365 m3 = Merge3(
366 base_text.splitlines(True), 366 base_text.splitlines(True),
367 other_text.splitlines(True), 367 other_text.splitlines(True),
368 this_text.splitlines(True), 368 this_text.splitlines(True),
369 ) 369 )
370 m_lines, conflicts = simplemerge.render_markers(m3, b'OTHER', b'THIS') 370 m_lines, conflicts = simplemerge.render_minimized(m3, b'OTHER', b'THIS')
371 self.assertEqual( 371 self.assertEqual(
372 b'<<<<<<< OTHER\r\nc\r\n=======\r\nb\r\n' 372 b'<<<<<<< OTHER\r\nc\r\n=======\r\nb\r\n'
373 b'>>>>>>> THIS\r\n'.splitlines(True), 373 b'>>>>>>> THIS\r\n'.splitlines(True),
374 m_lines, 374 m_lines,
375 ) 375 )
381 m3 = Merge3( 381 m3 = Merge3(
382 base_text.splitlines(True), 382 base_text.splitlines(True),
383 other_text.splitlines(True), 383 other_text.splitlines(True),
384 this_text.splitlines(True), 384 this_text.splitlines(True),
385 ) 385 )
386 m_lines, conflicts = simplemerge.render_markers(m3, b'OTHER', b'THIS') 386 m_lines, conflicts = simplemerge.render_minimized(m3, b'OTHER', b'THIS')
387 self.assertEqual( 387 self.assertEqual(
388 b'<<<<<<< OTHER\rc\r=======\rb\r' 388 b'<<<<<<< OTHER\rc\r=======\rb\r'
389 b'>>>>>>> THIS\r'.splitlines(True), 389 b'>>>>>>> THIS\r'.splitlines(True),
390 m_lines, 390 m_lines,
391 ) 391 )