/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/tests/test__annotator.py

  • Committer: Jelmer Vernooij
  • Date: 2018-07-02 01:11:40 UTC
  • mfrom: (7023 work)
  • mto: This revision was merged to the branch mainline in revision 7025.
  • Revision ID: jelmer@jelmer.uk-20180702011140-toroicnrq9a5jstj
Merge trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
207
207
                         self.ann.annotate_flat(self.ff_key))
208
208
 
209
209
    def test_annotate_flat_respects_break_ann_tie(self):
210
 
        tiebreaker = annotate._break_annotation_tie
211
 
        try:
212
 
            calls = []
213
 
            def custom_tiebreaker(annotated_lines):
214
 
                self.assertEqual(2, len(annotated_lines))
215
 
                left = annotated_lines[0]
216
 
                self.assertEqual(2, len(left))
217
 
                self.assertEqual(b'new content\n', left[1])
218
 
                right = annotated_lines[1]
219
 
                self.assertEqual(2, len(right))
220
 
                self.assertEqual(b'new content\n', right[1])
221
 
                calls.append((left[0], right[0]))
222
 
                # Our custom tiebreaker takes the *largest* value, rather than
223
 
                # the *smallest* value
224
 
                if left[0] < right[0]:
225
 
                    return right
226
 
                else:
227
 
                    return left
228
 
            annotate._break_annotation_tie = custom_tiebreaker
229
 
            self.make_many_way_common_merge_text()
230
 
            self.assertEqual([(self.fa_key, b'simple\n'),
231
 
                             (self.fe_key, b'new content\n')],
232
 
                             self.ann.annotate_flat(self.ff_key))
233
 
            self.assertEqual([(self.fe_key, self.fc_key),
234
 
                              (self.fe_key, self.fb_key)], calls)
235
 
        finally:
236
 
            annotate._break_annotation_tie = tiebreaker
237
 
 
 
210
        seen = set()
 
211
        def custom_tiebreaker(annotated_lines):
 
212
            self.assertEqual(2, len(annotated_lines))
 
213
            left = annotated_lines[0]
 
214
            self.assertEqual(2, len(left))
 
215
            self.assertEqual(b'new content\n', left[1])
 
216
            right = annotated_lines[1]
 
217
            self.assertEqual(2, len(right))
 
218
            self.assertEqual(b'new content\n', right[1])
 
219
            seen.update([left[0], right[0]])
 
220
            # Our custom tiebreaker takes the *largest* value, rather than
 
221
            # the *smallest* value
 
222
            if left[0] < right[0]:
 
223
                return right
 
224
            else:
 
225
                return left
 
226
        self.overrideAttr(annotate, '_break_annotation_tie', custom_tiebreaker)
 
227
        self.make_many_way_common_merge_text()
 
228
        self.assertEqual([(self.fa_key, b'simple\n'),
 
229
                         (self.fe_key, b'new content\n')],
 
230
                         self.ann.annotate_flat(self.ff_key))
 
231
        # Calls happen in set iteration order but should keys should be seen
 
232
        self.assertEqual({self.fb_key, self.fc_key, self.fe_key}, seen)
238
233
 
239
234
    def test_needed_keys_simple(self):
240
235
        self.make_simple_text()