~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_merge3.py

  • Committer: Aaron Bentley
  • Date: 2007-02-06 14:52:16 UTC
  • mfrom: (2266 +trunk)
  • mto: This revision was merged to the branch mainline in revision 2268.
  • Revision ID: abentley@panoramicfeedback.com-20070206145216-fcpi8o3ufvuzwbp9
Merge bzr.dev

Show diffs side-by-side

added added

removed removed

Lines of Context:
363
363
 
364
364
    def test_binary(self):
365
365
        self.assertRaises(BinaryFile, Merge3, ['\x00'], ['a'], ['b'])
366
 
 
367
 
    def test_dos_text(self):
368
 
        base_text = 'a\r\n'
369
 
        this_text = 'b\r\n'
370
 
        other_text = 'c\r\n'
371
 
        m3 = Merge3(base_text.splitlines(True), other_text.splitlines(True),
372
 
                    this_text.splitlines(True))
373
 
        m_lines = m3.merge_lines('OTHER', 'THIS')
374
 
        self.assertEqual('<<<<<<< OTHER\r\nc\r\n=======\r\nb\r\n'
375
 
            '>>>>>>> THIS\r\n'.splitlines(True), list(m_lines))
376
 
 
377
 
    def test_mac_text(self):
378
 
        base_text = 'a\r'
379
 
        this_text = 'b\r'
380
 
        other_text = 'c\r'
381
 
        m3 = Merge3(base_text.splitlines(True), other_text.splitlines(True),
382
 
                    this_text.splitlines(True))
383
 
        m_lines = m3.merge_lines('OTHER', 'THIS')
384
 
        self.assertEqual('<<<<<<< OTHER\rc\r=======\rb\r'
385
 
            '>>>>>>> THIS\r'.splitlines(True), list(m_lines))
386
 
 
387
 
    def test_merge3_cherrypick(self):
388
 
        base_text = "a\nb\n"
389
 
        this_text = "a\n"
390
 
        other_text = "a\nb\nc\n"
391
 
        # When cherrypicking, lines in base are not part of the conflict
392
 
        m3 = Merge3(base_text.splitlines(True), this_text.splitlines(True),
393
 
                    other_text.splitlines(True), is_cherrypick=True)
394
 
        m_lines = m3.merge_lines()
395
 
        self.assertEqualDiff('a\n<<<<<<<\n=======\nc\n>>>>>>>\n',
396
 
                             ''.join(m_lines))
397
 
 
398
 
        # This is not symmetric
399
 
        m3 = Merge3(base_text.splitlines(True), other_text.splitlines(True),
400
 
                    this_text.splitlines(True), is_cherrypick=True)
401
 
        m_lines = m3.merge_lines()
402
 
        self.assertEqualDiff('a\n<<<<<<<\nb\nc\n=======\n>>>>>>>\n',
403
 
                             ''.join(m_lines))
404
 
 
405
 
    def test_merge3_cherrypick_w_mixed(self):
406
 
        base_text = 'a\nb\nc\nd\ne\n'
407
 
        this_text = 'a\nb\nq\n'
408
 
        other_text = 'a\nb\nc\nd\nf\ne\ng\n'
409
 
        # When cherrypicking, lines in base are not part of the conflict
410
 
        m3 = Merge3(base_text.splitlines(True), this_text.splitlines(True),
411
 
                    other_text.splitlines(True), is_cherrypick=True)
412
 
        m_lines = m3.merge_lines()
413
 
        self.assertEqualDiff('a\n'
414
 
                             'b\n'
415
 
                             '<<<<<<<\n'
416
 
                             'q\n'
417
 
                             '=======\n'
418
 
                             'f\n'
419
 
                             '>>>>>>>\n'
420
 
                             '<<<<<<<\n'
421
 
                             '=======\n'
422
 
                             'g\n'
423
 
                             '>>>>>>>\n',
424
 
                             ''.join(m_lines))