~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_conflicts.py

  • Committer: Jelmer Vernooij
  • Date: 2012-01-04 16:10:04 UTC
  • mto: This revision was merged to the branch mainline in revision 6424.
  • Revision ID: jelmer@samba.org-20120104161004-2gepg7c0famy3lq6
Fix config name.

Show diffs side-by-side

added added

removed removed

Lines of Context:
446
446
              dict(actions='modify_file', check='file_has_more_content')),
447
447
             ('file_deleted',
448
448
              dict(actions='delete_file', check='file_doesnt_exist')),),
 
449
            # File renamed-modified/deleted
 
450
            (dict(_base_actions='create_file',
 
451
                  _path='new-file', _file_id='file-id'),
 
452
             ('file_renamed_and_modified',
 
453
              dict(actions='modify_and_rename_file',
 
454
                   check='file_renamed_and_more_content')),
 
455
             ('file_deleted',
 
456
              dict(actions='delete_file', check='file_doesnt_exist')),),
449
457
            # File modified/deleted in dir
450
458
            (dict(_base_actions='create_file_in_dir',
451
459
                  _path='dir/file', _file_id='file-id'),
463
471
    def do_modify_file(self):
464
472
        return [('modify', ('file-id', 'trunk content\nmore content\n'))]
465
473
 
 
474
    def do_modify_and_rename_file(self):
 
475
        return [('modify', ('file-id', 'trunk content\nmore content\n')),
 
476
                ('rename', ('file', 'new-file'))]
 
477
 
466
478
    def check_file_has_more_content(self):
467
479
        self.assertFileEqual('trunk content\nmore content\n', 'branch/file')
468
480
 
 
481
    def check_file_renamed_and_more_content(self):
 
482
        self.assertFileEqual('trunk content\nmore content\n', 'branch/new-file')
 
483
 
469
484
    def do_delete_file(self):
470
485
        return [('unversion', 'file-id')]
471
486
 
662
677
             ('fileb_created',
663
678
              dict(actions='create_file_b', check='file_content_b',
664
679
                   path='file', file_id='file-b-id')),),
 
680
            # File created with different file-ids but deleted on one side
 
681
            (dict(_base_actions='create_file_a'),
 
682
             ('filea_replaced',
 
683
              dict(actions='replace_file_a_by_b', check='file_content_b',
 
684
                   path='file', file_id='file-b-id')),
 
685
             ('filea_modified',
 
686
              dict(actions='modify_file_a', check='file_new_content',
 
687
                   path='file', file_id='file-a-id')),),
665
688
            ])
666
689
 
667
690
    def do_nothing(self):
679
702
    def check_file_content_b(self):
680
703
        self.assertFileEqual('file b content\n', 'branch/file')
681
704
 
 
705
    def do_replace_file_a_by_b(self):
 
706
        return [('unversion', 'file-a-id'),
 
707
                ('add', ('file', 'file-b-id', 'file', 'file b content\n'))]
 
708
 
 
709
    def do_modify_file_a(self):
 
710
        return [('modify', ('file-a-id', 'new content\n'))]
 
711
 
 
712
    def check_file_new_content(self):
 
713
        self.assertFileEqual('new content\n', 'branch/file')
 
714
 
682
715
    def _get_resolve_path_arg(self, wt, action):
683
716
        return self._this['path']
684
717
 
726
759
        self.run_script("""
727
760
$ bzr rm -q dir  --force
728
761
$ bzr resolve dir
729
 
2>2 conflict(s) resolved, 0 remaining
 
762
2>2 conflicts resolved, 0 remaining
730
763
$ bzr commit -q --strict -m 'No more conflicts nor unknown files'
731
764
""")
732
765
 
733
766
    def test_take_other(self):
734
767
        self.run_script("""
735
768
$ bzr resolve dir
736
 
2>2 conflict(s) resolved, 0 remaining
 
769
2>2 conflicts resolved, 0 remaining
737
770
$ bzr commit -q --strict -m 'No more conflicts nor unknown files'
738
771
""")
739
772
 
767
800
    def test_keep_them_all(self):
768
801
        self.run_script("""
769
802
$ bzr resolve dir
770
 
2>2 conflict(s) resolved, 0 remaining
 
803
2>2 conflicts resolved, 0 remaining
771
804
$ bzr commit -q --strict -m 'No more conflicts nor unknown files'
772
805
""")
773
806
 
776
809
$ bzr mv -q dir/file2 file2
777
810
$ bzr rm -q dir --force
778
811
$ bzr resolve dir
779
 
2>2 conflict(s) resolved, 0 remaining
 
812
2>2 conflicts resolved, 0 remaining
780
813
$ bzr commit -q --strict -m 'No more conflicts nor unknown files'
781
814
""")
782
815
 
784
817
        self.run_script("""
785
818
$ bzr rm -q dir --force
786
819
$ bzr resolve dir
787
 
2>2 conflict(s) resolved, 0 remaining
 
820
2>2 conflicts resolved, 0 remaining
788
821
$ bzr commit -q --strict -m 'No more conflicts nor unknown files'
789
822
""")
790
823
 
831
864
    def test_keep_them_all(self):
832
865
        self.run_script("""
833
866
$ bzr resolve dir
834
 
2>2 conflict(s) resolved, 0 remaining
 
867
2>2 conflicts resolved, 0 remaining
835
868
$ bzr commit -q --strict -m 'No more conflicts nor unknown files'
836
869
""")
837
870
 
840
873
$ bzr mv -q dir/file2 file2
841
874
$ bzr rm -q dir --force
842
875
$ bzr resolve dir
843
 
2>2 conflict(s) resolved, 0 remaining
 
876
2>2 conflicts resolved, 0 remaining
844
877
$ bzr commit -q --strict -m 'No more conflicts nor unknown files'
845
878
""")
846
879
 
848
881
        self.run_script("""
849
882
$ bzr rm -q dir --force
850
883
$ bzr resolve dir
851
 
2>2 conflict(s) resolved, 0 remaining
 
884
2>2 conflicts resolved, 0 remaining
852
885
$ bzr commit -q --strict -m 'No more conflicts nor unknown files'
853
886
""")
854
887
 
855
888
    def test_resolve_taking_this(self):
856
889
        self.run_script("""
857
890
$ bzr resolve --take-this dir
858
 
2>2 conflict(s) resolved, 0 remaining
 
891
2>2 conflicts resolved, 0 remaining
859
892
$ bzr commit -q --strict -m 'No more conflicts nor unknown files'
860
893
""")
861
894
 
864
897
$ bzr resolve --take-other dir
865
898
2>deleted dir/file2
866
899
2>deleted dir
867
 
2>2 conflict(s) resolved, 0 remaining
 
900
2>2 conflicts resolved, 0 remaining
868
901
$ bzr commit -q --strict -m 'No more conflicts nor unknown files'
869
902
""")
870
903
 
956
989
        if self._other['xfail']:
957
990
            # It's a bit hackish to raise from here relying on being called for
958
991
            # both tests but this avoid overriding test_resolve_taking_other
959
 
            raise tests.KnownFailure(
 
992
            self.knownFailure(
960
993
                "ParentLoop doesn't carry enough info to resolve --take-other")
961
994
    _assert_conflict = assertParentLoop
962
995
 
994
1027
# aside ? -- vila 090916
995
1028
$ bzr add -q foo
996
1029
$ bzr resolve foo.new
997
 
2>1 conflict(s) resolved, 0 remaining
 
1030
2>1 conflict resolved, 0 remaining
998
1031
$ bzr commit -q --strict -m 'No more conflicts nor unknown files'
999
1032
""")
1000
1033
 
1003
1036
$ bzr rm -q foo --force
1004
1037
$ bzr mv -q foo.new foo
1005
1038
$ bzr resolve foo
1006
 
2>1 conflict(s) resolved, 0 remaining
 
1039
2>1 conflict resolved, 0 remaining
1007
1040
$ bzr commit -q --strict -m 'No more conflicts nor unknown files'
1008
1041
""")
1009
1042
 
1028
1061
        # This is nearly like TestResolveNonDirectoryParent but with branch and
1029
1062
        # trunk switched. As such it should certainly produce the same
1030
1063
        # conflict.
1031
 
        self.run_script("""
 
1064
        self.assertRaises(errors.MalformedTransform,
 
1065
                          self.run_script,"""
1032
1066
$ bzr init trunk
1033
1067
...
1034
1068
$ cd trunk
1048
1082
""")
1049
1083
 
1050
1084
 
 
1085
class TestNoFinalPath(script.TestCaseWithTransportAndScript):
 
1086
 
 
1087
    def test_bug_805809(self):
 
1088
        self.run_script("""
 
1089
$ bzr init trunk
 
1090
Created a standalone tree (format: 2a)
 
1091
$ cd trunk
 
1092
$ echo trunk >file
 
1093
$ bzr add
 
1094
adding file
 
1095
$ bzr commit -m 'create file on trunk'
 
1096
2>Committing to: .../trunk/
 
1097
2>added file
 
1098
2>Committed revision 1.
 
1099
# Create a debian branch based on trunk
 
1100
$ cd ..
 
1101
$ bzr branch trunk -r 1 debian
 
1102
2>Branched 1 revision.
 
1103
$ cd debian
 
1104
$ mkdir dir
 
1105
$ bzr add
 
1106
adding dir
 
1107
$ bzr mv file dir
 
1108
file => dir/file
 
1109
$ bzr commit -m 'rename file to dir/file for debian'
 
1110
2>Committing to: .../debian/
 
1111
2>added dir
 
1112
2>renamed file => dir/file
 
1113
2>Committed revision 2.
 
1114
# Create an experimental branch with a new root-id
 
1115
$ cd ..
 
1116
$ bzr init experimental
 
1117
Created a standalone tree (format: 2a)
 
1118
$ cd experimental
 
1119
# Work around merging into empty branch not being supported
 
1120
# (http://pad.lv/308562)
 
1121
$ echo something >not-empty
 
1122
$ bzr add
 
1123
adding not-empty
 
1124
$ bzr commit -m 'Add some content in experimental'
 
1125
2>Committing to: .../experimental/
 
1126
2>added not-empty
 
1127
2>Committed revision 1.
 
1128
# merge debian even without a common ancestor
 
1129
$ bzr merge ../debian -r0..2
 
1130
2>+N  dir/
 
1131
2>+N  dir/file
 
1132
2>All changes applied successfully.
 
1133
$ bzr commit -m 'merging debian into experimental'
 
1134
2>Committing to: .../experimental/
 
1135
2>added dir
 
1136
2>added dir/file
 
1137
2>Committed revision 2.
 
1138
# Create an ubuntu branch with yet another root-id
 
1139
$ cd ..
 
1140
$ bzr init ubuntu
 
1141
Created a standalone tree (format: 2a)
 
1142
$ cd ubuntu
 
1143
# Work around merging into empty branch not being supported
 
1144
# (http://pad.lv/308562)
 
1145
$ echo something >not-empty-ubuntu
 
1146
$ bzr add
 
1147
adding not-empty-ubuntu
 
1148
$ bzr commit -m 'Add some content in experimental'
 
1149
2>Committing to: .../ubuntu/
 
1150
2>added not-empty-ubuntu
 
1151
2>Committed revision 1.
 
1152
# Also merge debian
 
1153
$ bzr merge ../debian -r0..2
 
1154
2>+N  dir/
 
1155
2>+N  dir/file
 
1156
2>All changes applied successfully.
 
1157
$ bzr commit -m 'merging debian'
 
1158
2>Committing to: .../ubuntu/
 
1159
2>added dir
 
1160
2>added dir/file
 
1161
2>Committed revision 2.
 
1162
# Now try to merge experimental
 
1163
$ bzr merge ../experimental
 
1164
2>+N  not-empty
 
1165
2>Path conflict: dir / dir
 
1166
2>1 conflicts encountered.
 
1167
""")
 
1168
 
 
1169
 
1051
1170
class TestResolveActionOption(tests.TestCase):
1052
1171
 
1053
1172
    def setUp(self):