232
237
self._mk_versioned_file('file0.cc')
234
239
out, err = self.run_bzr(['grep', '-r', 'last:1',
235
'--exclude', '*.cc', 'line1'])
236
self.assertContainsRe(out, "file0.aa~.:line1$", flags=TestGrep._reflags)
237
self.assertContainsRe(out, "file0.bb~.:line1$", flags=TestGrep._reflags)
238
self.assertContainsRe(out, "file0.aa~.:line10", flags=TestGrep._reflags)
239
self.assertContainsRe(out, "file0.bb~.:line10", flags=TestGrep._reflags)
240
'--exclude', '*.cc', 'line1'])
241
self.assertContainsRe(out, "file0.aa~.:line1$",
242
flags=TestGrep._reflags)
243
self.assertContainsRe(out, "file0.bb~.:line1$",
244
flags=TestGrep._reflags)
245
self.assertContainsRe(out, "file0.aa~.:line10",
246
flags=TestGrep._reflags)
247
self.assertContainsRe(out, "file0.bb~.:line10",
248
flags=TestGrep._reflags)
240
249
self.assertNotContainsRe(out, "file0.cc", flags=TestGrep._reflags)
241
250
# two lines each (line1, line10) from file0.aa and file0.bb
242
251
self.assertEqual(len(out.splitlines()), 4)
244
253
out, err = self.run_bzr(['grep', '-r', 'last:1',
245
'--exclude', '*.cc', 'line1$'])
254
'--exclude', '*.cc', 'line1$'])
246
255
self.assertContainsRe(out, "file0.aa~.:line1", flags=TestGrep._reflags)
247
256
self.assertContainsRe(out, "file0.bb~.:line1", flags=TestGrep._reflags)
248
257
self.assertNotContainsRe(out, "file0.cc", flags=TestGrep._reflags)
292
301
self._mk_versioned_file('file2.txt', total_lines=2)
294
303
out, err = self.run_bzr(['grep', '-r', 'last:1', 'line[1-2]$'])
295
self.assertContainsRe(out, "file0.txt~.:line1", flags=TestGrep._reflags)
296
self.assertContainsRe(out, "file0.txt~.:line2", flags=TestGrep._reflags)
297
self.assertContainsRe(out, "file1.txt~.:line1", flags=TestGrep._reflags)
298
self.assertContainsRe(out, "file1.txt~.:line2", flags=TestGrep._reflags)
299
self.assertContainsRe(out, "file2.txt~.:line1", flags=TestGrep._reflags)
300
self.assertContainsRe(out, "file2.txt~.:line2", flags=TestGrep._reflags)
304
self.assertContainsRe(out, "file0.txt~.:line1",
305
flags=TestGrep._reflags)
306
self.assertContainsRe(out, "file0.txt~.:line2",
307
flags=TestGrep._reflags)
308
self.assertContainsRe(out, "file1.txt~.:line1",
309
flags=TestGrep._reflags)
310
self.assertContainsRe(out, "file1.txt~.:line2",
311
flags=TestGrep._reflags)
312
self.assertContainsRe(out, "file2.txt~.:line1",
313
flags=TestGrep._reflags)
314
self.assertContainsRe(out, "file2.txt~.:line2",
315
flags=TestGrep._reflags)
301
316
self.assertEqual(len(out.splitlines()), 6)
303
318
out, err = self.run_bzr(['grep', '-r', 'last:1', 'line'])
304
self.assertContainsRe(out, "file0.txt~.:line1", flags=TestGrep._reflags)
305
self.assertContainsRe(out, "file0.txt~.:line2", flags=TestGrep._reflags)
306
self.assertContainsRe(out, "file1.txt~.:line1", flags=TestGrep._reflags)
307
self.assertContainsRe(out, "file1.txt~.:line2", flags=TestGrep._reflags)
308
self.assertContainsRe(out, "file2.txt~.:line1", flags=TestGrep._reflags)
309
self.assertContainsRe(out, "file2.txt~.:line2", flags=TestGrep._reflags)
319
self.assertContainsRe(out, "file0.txt~.:line1",
320
flags=TestGrep._reflags)
321
self.assertContainsRe(out, "file0.txt~.:line2",
322
flags=TestGrep._reflags)
323
self.assertContainsRe(out, "file1.txt~.:line1",
324
flags=TestGrep._reflags)
325
self.assertContainsRe(out, "file1.txt~.:line2",
326
flags=TestGrep._reflags)
327
self.assertContainsRe(out, "file2.txt~.:line1",
328
flags=TestGrep._reflags)
329
self.assertContainsRe(out, "file2.txt~.:line2",
330
flags=TestGrep._reflags)
310
331
self.assertEqual(len(out.splitlines()), 6)
312
333
def test_multiple_wtree_files(self):
513
553
out, err = self.run_bzr(['grep', '-r', 'last:1',
514
'--include', '*.aa', 'line1'])
515
self.assertContainsRe(out, "^file1.aa~5:line1$", flags=TestGrep._reflags)
516
self.assertContainsRe(out, "^file1.aa~5:line10$", flags=TestGrep._reflags)
554
'--include', '*.aa', 'line1'])
555
self.assertContainsRe(out, "^file1.aa~5:line1$",
556
flags=TestGrep._reflags)
557
self.assertContainsRe(out, "^file1.aa~5:line10$",
558
flags=TestGrep._reflags)
517
559
self.assertNotContainsRe(out, "file0.txt", flags=TestGrep._reflags)
518
560
# finds line1 and line10
519
561
self.assertEqual(len(out.splitlines()), 2)
521
563
out, err = self.run_bzr(['grep', '-r', 'last:2..last:1',
522
'--include', '*.aa', 'line1'])
523
self.assertContainsRe(out, "^file1.aa~4:line1$", flags=TestGrep._reflags)
524
self.assertContainsRe(out, "^file1.aa~4:line10$", flags=TestGrep._reflags)
525
self.assertContainsRe(out, "^file1.aa~5:line1$", flags=TestGrep._reflags)
526
self.assertContainsRe(out, "^file1.aa~5:line10$", flags=TestGrep._reflags)
564
'--include', '*.aa', 'line1'])
565
self.assertContainsRe(out, "^file1.aa~4:line1$",
566
flags=TestGrep._reflags)
567
self.assertContainsRe(out, "^file1.aa~4:line10$",
568
flags=TestGrep._reflags)
569
self.assertContainsRe(out, "^file1.aa~5:line1$",
570
flags=TestGrep._reflags)
571
self.assertContainsRe(out, "^file1.aa~5:line10$",
572
flags=TestGrep._reflags)
527
573
self.assertNotContainsRe(out, "file0.txt", flags=TestGrep._reflags)
528
574
# finds line1 and line10 over two revisions
529
575
self.assertEqual(len(out.splitlines()), 4)
531
577
out, err = self.run_bzr(['grep', '-r', 'last:1',
532
'--include', '*.aa', 'lin.1'])
533
self.assertContainsRe(out, "^file1.aa~5:line1$", flags=TestGrep._reflags)
534
self.assertContainsRe(out, "^file1.aa~5:line10$", flags=TestGrep._reflags)
578
'--include', '*.aa', 'lin.1'])
579
self.assertContainsRe(out, "^file1.aa~5:line1$",
580
flags=TestGrep._reflags)
581
self.assertContainsRe(out, "^file1.aa~5:line10$",
582
flags=TestGrep._reflags)
535
583
self.assertNotContainsRe(out, "file0.txt", flags=TestGrep._reflags)
536
584
# finds line1 and line10
537
585
self.assertEqual(len(out.splitlines()), 2)
539
587
out, err = self.run_bzr(['grep', '-r', 'last:3..last:1',
540
'--include', '*.aa', 'lin.1'])
541
self.assertContainsRe(out, "^file1.aa~3:line1$", flags=TestGrep._reflags)
542
self.assertContainsRe(out, "^file1.aa~4:line1$", flags=TestGrep._reflags)
543
self.assertContainsRe(out, "^file1.aa~5:line1$", flags=TestGrep._reflags)
544
self.assertContainsRe(out, "^file1.aa~3:line10$", flags=TestGrep._reflags)
545
self.assertContainsRe(out, "^file1.aa~4:line10$", flags=TestGrep._reflags)
546
self.assertContainsRe(out, "^file1.aa~5:line10$", flags=TestGrep._reflags)
588
'--include', '*.aa', 'lin.1'])
589
self.assertContainsRe(out, "^file1.aa~3:line1$",
590
flags=TestGrep._reflags)
591
self.assertContainsRe(out, "^file1.aa~4:line1$",
592
flags=TestGrep._reflags)
593
self.assertContainsRe(out, "^file1.aa~5:line1$",
594
flags=TestGrep._reflags)
595
self.assertContainsRe(out, "^file1.aa~3:line10$",
596
flags=TestGrep._reflags)
597
self.assertContainsRe(out, "^file1.aa~4:line10$",
598
flags=TestGrep._reflags)
599
self.assertContainsRe(out, "^file1.aa~5:line10$",
600
flags=TestGrep._reflags)
547
601
self.assertNotContainsRe(out, "file0.txt", flags=TestGrep._reflags)
548
602
# finds line1 and line10 over 3 revisions
549
603
self.assertEqual(len(out.splitlines()), 6)
657
715
self._mk_versioned_file('dir2/file2.cc')
659
717
out, err = self.run_bzr(['grep', '-r', 'last:1',
660
'--include', '*.aa', '--include', '*.bb', 'l..e1'])
661
self.assertContainsRe(out, "^dir0/file0.aa~.:line1$", flags=TestGrep._reflags)
662
self.assertContainsRe(out, "^dir1/file1.bb~.:line1$", flags=TestGrep._reflags)
663
self.assertContainsRe(out, "^dir0/file0.aa~.:line10$", flags=TestGrep._reflags)
664
self.assertContainsRe(out, "^dir1/file1.bb~.:line10$", flags=TestGrep._reflags)
718
'--include', '*.aa', '--include', '*.bb', 'l..e1'])
719
self.assertContainsRe(
720
out, "^dir0/file0.aa~.:line1$", flags=TestGrep._reflags)
721
self.assertContainsRe(
722
out, "^dir1/file1.bb~.:line1$", flags=TestGrep._reflags)
723
self.assertContainsRe(
724
out, "^dir0/file0.aa~.:line10$", flags=TestGrep._reflags)
725
self.assertContainsRe(
726
out, "^dir1/file1.bb~.:line10$", flags=TestGrep._reflags)
665
727
self.assertNotContainsRe(out, "file1.cc", flags=TestGrep._reflags)
666
728
# finds line1 and line10
667
729
self.assertEqual(len(out.splitlines()), 4)
669
731
out, err = self.run_bzr(['grep', '-r', 'last:1',
670
'--include', '*.aa', '--include', '*.bb', 'line1'])
671
self.assertContainsRe(out, "^dir0/file0.aa~.:line1$", flags=TestGrep._reflags)
672
self.assertContainsRe(out, "^dir1/file1.bb~.:line1$", flags=TestGrep._reflags)
673
self.assertContainsRe(out, "^dir0/file0.aa~.:line10$", flags=TestGrep._reflags)
674
self.assertContainsRe(out, "^dir1/file1.bb~.:line10$", flags=TestGrep._reflags)
732
'--include', '*.aa', '--include', '*.bb', 'line1'])
733
self.assertContainsRe(
734
out, "^dir0/file0.aa~.:line1$", flags=TestGrep._reflags)
735
self.assertContainsRe(
736
out, "^dir1/file1.bb~.:line1$", flags=TestGrep._reflags)
737
self.assertContainsRe(
738
out, "^dir0/file0.aa~.:line10$", flags=TestGrep._reflags)
739
self.assertContainsRe(
740
out, "^dir1/file1.bb~.:line10$", flags=TestGrep._reflags)
675
741
self.assertNotContainsRe(out, "file1.cc", flags=TestGrep._reflags)
676
742
# finds line1 and line10
677
743
self.assertEqual(len(out.splitlines()), 4)
693
759
self._mk_versioned_file('dir2/file2.cc')
695
761
out, err = self.run_bzr(['grep', '--include', '*.aa',
696
'--include', '*.bb', 'l.n.1'])
697
self.assertContainsRe(out, "^dir0/file0.aa:line1$", flags=TestGrep._reflags)
698
self.assertContainsRe(out, "^dir1/file1.bb:line1$", flags=TestGrep._reflags)
699
self.assertContainsRe(out, "^dir0/file0.aa:line10$", flags=TestGrep._reflags)
700
self.assertContainsRe(out, "^dir1/file1.bb:line10$", flags=TestGrep._reflags)
762
'--include', '*.bb', 'l.n.1'])
763
self.assertContainsRe(out, "^dir0/file0.aa:line1$",
764
flags=TestGrep._reflags)
765
self.assertContainsRe(out, "^dir1/file1.bb:line1$",
766
flags=TestGrep._reflags)
767
self.assertContainsRe(
768
out, "^dir0/file0.aa:line10$", flags=TestGrep._reflags)
769
self.assertContainsRe(
770
out, "^dir1/file1.bb:line10$", flags=TestGrep._reflags)
701
771
self.assertNotContainsRe(out, "file1.cc", flags=TestGrep._reflags)
702
772
# finds line1 and line10
703
773
self.assertEqual(len(out.splitlines()), 4)
705
775
out, err = self.run_bzr(['grep', '--include', '*.aa',
706
'--include', '*.bb', 'line1'])
707
self.assertContainsRe(out, "^dir0/file0.aa:line1$", flags=TestGrep._reflags)
708
self.assertContainsRe(out, "^dir1/file1.bb:line1$", flags=TestGrep._reflags)
709
self.assertContainsRe(out, "^dir0/file0.aa:line10$", flags=TestGrep._reflags)
710
self.assertContainsRe(out, "^dir1/file1.bb:line10$", flags=TestGrep._reflags)
776
'--include', '*.bb', 'line1'])
777
self.assertContainsRe(out, "^dir0/file0.aa:line1$",
778
flags=TestGrep._reflags)
779
self.assertContainsRe(out, "^dir1/file1.bb:line1$",
780
flags=TestGrep._reflags)
781
self.assertContainsRe(
782
out, "^dir0/file0.aa:line10$", flags=TestGrep._reflags)
783
self.assertContainsRe(
784
out, "^dir1/file1.bb:line10$", flags=TestGrep._reflags)
711
785
self.assertNotContainsRe(out, "file1.cc", flags=TestGrep._reflags)
712
786
# finds line1 and line10
713
787
self.assertEqual(len(out.splitlines()), 4)
729
803
self._mk_versioned_file('dir2/file2.cc')
731
805
out, err = self.run_bzr(['grep', '-r', 'last:1',
732
'--exclude', '*.cc', 'l..e1'])
733
self.assertContainsRe(out, "^dir0/file0.aa~.:line1", flags=TestGrep._reflags)
734
self.assertContainsRe(out, "^dir1/file1.bb~.:line1", flags=TestGrep._reflags)
806
'--exclude', '*.cc', 'l..e1'])
807
self.assertContainsRe(
808
out, "^dir0/file0.aa~.:line1", flags=TestGrep._reflags)
809
self.assertContainsRe(
810
out, "^dir1/file1.bb~.:line1", flags=TestGrep._reflags)
735
811
self.assertNotContainsRe(out, "file1.cc", flags=TestGrep._reflags)
737
813
out, err = self.run_bzr(['grep', '-r', 'last:1',
738
'--exclude', '*.cc', 'line1'])
739
self.assertContainsRe(out, "^dir0/file0.aa~.:line1", flags=TestGrep._reflags)
740
self.assertContainsRe(out, "^dir1/file1.bb~.:line1", flags=TestGrep._reflags)
814
'--exclude', '*.cc', 'line1'])
815
self.assertContainsRe(
816
out, "^dir0/file0.aa~.:line1", flags=TestGrep._reflags)
817
self.assertContainsRe(
818
out, "^dir1/file1.bb~.:line1", flags=TestGrep._reflags)
741
819
self.assertNotContainsRe(out, "file1.cc", flags=TestGrep._reflags)
743
821
def test_wtree_exclude_from_outside_dir(self):
800
886
self._mk_versioned_dir('dir1')
801
887
self._mk_versioned_file('dir1/file1.txt')
803
out, err = self.run_bzr(['grep', '-r', 'last:1', '.ine1', 'dir0', 'dir1'])
804
self.assertContainsRe(out, "^dir0/file0.txt~.:line1", flags=TestGrep._reflags)
805
self.assertContainsRe(out, "^dir1/file1.txt~.:line1", flags=TestGrep._reflags)
889
out, err = self.run_bzr(
890
['grep', '-r', 'last:1', '.ine1', 'dir0', 'dir1'])
891
self.assertContainsRe(
892
out, "^dir0/file0.txt~.:line1", flags=TestGrep._reflags)
893
self.assertContainsRe(
894
out, "^dir1/file1.txt~.:line1", flags=TestGrep._reflags)
807
out, err = self.run_bzr(['grep', '-r', 'last:1', 'line1', 'dir0', 'dir1'])
808
self.assertContainsRe(out, "^dir0/file0.txt~.:line1", flags=TestGrep._reflags)
809
self.assertContainsRe(out, "^dir1/file1.txt~.:line1", flags=TestGrep._reflags)
896
out, err = self.run_bzr(
897
['grep', '-r', 'last:1', 'line1', 'dir0', 'dir1'])
898
self.assertContainsRe(
899
out, "^dir0/file0.txt~.:line1", flags=TestGrep._reflags)
900
self.assertContainsRe(
901
out, "^dir1/file1.txt~.:line1", flags=TestGrep._reflags)
811
903
def test_wtree_files_from_outside_dir(self):
812
904
"""(wtree) Grep for pattern with dirs passed as argument.
845
941
self._mk_versioned_dir('dir0/dir00')
846
942
self._mk_versioned_file('dir0/dir00/file0.txt')
848
out, err = self.run_bzr(['grep', '-r', 'last:1', 'l.ne1', 'dir0/dir00'])
849
self.assertContainsRe(out, "^dir0/dir00/file0.txt~.:line1", flags=TestGrep._reflags)
944
out, err = self.run_bzr(
945
['grep', '-r', 'last:1', 'l.ne1', 'dir0/dir00'])
946
self.assertContainsRe(
947
out, "^dir0/dir00/file0.txt~.:line1", flags=TestGrep._reflags)
851
949
out, err = self.run_bzr(['grep', '-r', 'last:1', 'l.ne1'])
852
self.assertContainsRe(out, "^dir0/dir00/file0.txt~.:line1", flags=TestGrep._reflags)
950
self.assertContainsRe(
951
out, "^dir0/dir00/file0.txt~.:line1", flags=TestGrep._reflags)
854
out, err = self.run_bzr(['grep', '-r', 'last:1', 'line1', 'dir0/dir00'])
855
self.assertContainsRe(out, "^dir0/dir00/file0.txt~.:line1", flags=TestGrep._reflags)
953
out, err = self.run_bzr(
954
['grep', '-r', 'last:1', 'line1', 'dir0/dir00'])
955
self.assertContainsRe(
956
out, "^dir0/dir00/file0.txt~.:line1", flags=TestGrep._reflags)
857
958
out, err = self.run_bzr(['grep', '-r', 'last:1', 'line1'])
858
self.assertContainsRe(out, "^dir0/dir00/file0.txt~.:line1", flags=TestGrep._reflags)
959
self.assertContainsRe(
960
out, "^dir0/dir00/file0.txt~.:line1", flags=TestGrep._reflags)
860
962
def test_wtree_files_from_outside_two_dirs(self):
861
963
"""(wtree) Grep for pattern with two levels of nested dir.
897
1003
os.chdir('dir0')
899
1005
out, err = self.run_bzr(['grep', '-r', 'last:1', '.ine1'])
900
self.assertContainsRe(out, "^dir1/file0.txt~.:line1", flags=TestGrep._reflags)
902
out, err = self.run_bzr(['grep', '-r', 'last:1', '--from-root', 'l.ne1'])
903
self.assertContainsRe(out, "^dir0/dir1/file0.txt~.:line1", flags=TestGrep._reflags)
905
out, err = self.run_bzr(['grep', '-r', 'last:1', '--no-recursive', 'line1'])
1006
self.assertContainsRe(
1007
out, "^dir1/file0.txt~.:line1", flags=TestGrep._reflags)
1009
out, err = self.run_bzr(
1010
['grep', '-r', 'last:1', '--from-root', 'l.ne1'])
1011
self.assertContainsRe(
1012
out, "^dir0/dir1/file0.txt~.:line1", flags=TestGrep._reflags)
1014
out, err = self.run_bzr(
1015
['grep', '-r', 'last:1', '--no-recursive', 'line1'])
906
1016
self.assertNotContainsRe(out, "file0.txt", flags=TestGrep._reflags)
908
1018
out, err = self.run_bzr(['grep', '-r', 'last:1', 'lin.1'])
909
self.assertContainsRe(out, "^dir1/file0.txt~.:line1", flags=TestGrep._reflags)
911
out, err = self.run_bzr(['grep', '-r', 'last:1', '--from-root', 'line1'])
912
self.assertContainsRe(out, "^dir0/dir1/file0.txt~.:line1", flags=TestGrep._reflags)
914
out, err = self.run_bzr(['grep', '-r', 'last:1', '--no-recursive', 'line1'])
1019
self.assertContainsRe(
1020
out, "^dir1/file0.txt~.:line1", flags=TestGrep._reflags)
1022
out, err = self.run_bzr(
1023
['grep', '-r', 'last:1', '--from-root', 'line1'])
1024
self.assertContainsRe(
1025
out, "^dir0/dir1/file0.txt~.:line1", flags=TestGrep._reflags)
1027
out, err = self.run_bzr(
1028
['grep', '-r', 'last:1', '--no-recursive', 'line1'])
915
1029
self.assertNotContainsRe(out, "file0.txt", flags=TestGrep._reflags)
916
1030
self.assertEqual(len(out.splitlines()), 0)
981
1103
self._mk_versioned_file('file0.txt')
983
1105
out, err = self.run_bzr(['grep', '-r', 'last:1',
984
'-i', 'Li.E1', 'file0.txt'])
985
self.assertContainsRe(out, "file0.txt~.:line1", flags=TestGrep._reflags)
987
out, err = self.run_bzr(['grep', '-r', 'last:1',
988
'-i', 'LinE1', 'file0.txt'])
989
self.assertContainsRe(out, "file0.txt~.:line1", flags=TestGrep._reflags)
991
out, err = self.run_bzr(['grep', '-r', 'last:1',
992
'--ignore-case', 'LinE1', 'file0.txt'])
993
self.assertContainsRe(out, "^file0.txt~.:line1", flags=TestGrep._reflags)
1106
'-i', 'Li.E1', 'file0.txt'])
1107
self.assertContainsRe(out, "file0.txt~.:line1",
1108
flags=TestGrep._reflags)
1110
out, err = self.run_bzr(['grep', '-r', 'last:1',
1111
'-i', 'LinE1', 'file0.txt'])
1112
self.assertContainsRe(out, "file0.txt~.:line1",
1113
flags=TestGrep._reflags)
1115
out, err = self.run_bzr(['grep', '-r', 'last:1',
1116
'--ignore-case', 'LinE1', 'file0.txt'])
1117
self.assertContainsRe(out, "^file0.txt~.:line1",
1118
flags=TestGrep._reflags)
995
1120
def test_wtree_ignore_case_match(self):
996
1121
"""(wtree) Match fails without --ignore-case.
1084
1213
self._mk_versioned_file('file0.txt')
1086
1215
out, err = self.run_bzr(['grep', '-r', 'last:1',
1087
'--line-number', 'li.e3', 'file0.txt'])
1088
self.assertContainsRe(out, "file0.txt~.:3:line3", flags=TestGrep._reflags)
1090
out, err = self.run_bzr(['grep', '-r', 'last:1',
1091
'--line-number', 'line3', 'file0.txt'])
1092
self.assertContainsRe(out, "file0.txt~.:3:line3", flags=TestGrep._reflags)
1094
out, err = self.run_bzr(['grep', '-r', 'last:1',
1095
'-n', 'line1', 'file0.txt'])
1096
self.assertContainsRe(out, "file0.txt~.:1:line1", flags=TestGrep._reflags)
1216
'--line-number', 'li.e3', 'file0.txt'])
1217
self.assertContainsRe(out, "file0.txt~.:3:line3",
1218
flags=TestGrep._reflags)
1220
out, err = self.run_bzr(['grep', '-r', 'last:1',
1221
'--line-number', 'line3', 'file0.txt'])
1222
self.assertContainsRe(out, "file0.txt~.:3:line3",
1223
flags=TestGrep._reflags)
1225
out, err = self.run_bzr(['grep', '-r', 'last:1',
1226
'-n', 'line1', 'file0.txt'])
1227
self.assertContainsRe(out, "file0.txt~.:1:line1",
1228
flags=TestGrep._reflags)
1098
1230
out, err = self.run_bzr(['grep', '-n', 'line[0-9]', 'file0.txt'])
1099
self.assertContainsRe(out, "file0.txt:3:line3", flags=TestGrep._reflags)
1231
self.assertContainsRe(out, "file0.txt:3:line3",
1232
flags=TestGrep._reflags)
1101
1234
def test_wtree_with_line_number(self):
1102
1235
"""(wtree) Search for pattern with --line-number.
1206
1346
# v4 should not be present in revno 3
1207
1347
out, err = self.run_bzr(['grep', '-r', 'last:3', 'v4'])
1208
self.assertNotContainsRe(out, "^dir0/file0.txt", flags=TestGrep._reflags)
1348
self.assertNotContainsRe(
1349
out, "^dir0/file0.txt", flags=TestGrep._reflags)
1210
1351
# v4 should be present in revno 4
1211
1352
out, err = self.run_bzr(['grep', '-r', 'last:2', 'v4'])
1212
self.assertContainsRe(out, "^dir0/file0.txt~4:v4", flags=TestGrep._reflags)
1353
self.assertContainsRe(out, "^dir0/file0.txt~4:v4",
1354
flags=TestGrep._reflags)
1214
1356
# v4 should not be present in revno 3
1215
1357
out, err = self.run_bzr(['grep', '-r', 'last:3', '[tuv]4'])
1216
self.assertNotContainsRe(out, "^dir0/file0.txt", flags=TestGrep._reflags)
1358
self.assertNotContainsRe(
1359
out, "^dir0/file0.txt", flags=TestGrep._reflags)
1218
1361
# v4 should be present in revno 4
1219
1362
out, err = self.run_bzr(['grep', '-r', 'last:2', '[tuv]4'])
1220
self.assertContainsRe(out, "^dir0/file0.txt~4:v4", flags=TestGrep._reflags)
1363
self.assertContainsRe(out, "^dir0/file0.txt~4:v4",
1364
flags=TestGrep._reflags)
1222
1366
def test_revno_range_basic_history_grep(self):
1223
1367
"""Search for pattern in revision range for file.
1307
1455
self._update_file('dir0/file0.txt', "v6 text\n") # rev6
1309
1457
out, err = self.run_bzr(['grep', '-r', '2..5', 'v3'])
1310
self.assertContainsRe(out, "^dir0/file0.txt~3:v3", flags=TestGrep._reflags)
1311
self.assertContainsRe(out, "^dir0/file0.txt~4:v3", flags=TestGrep._reflags)
1312
self.assertContainsRe(out, "^dir0/file0.txt~5:v3", flags=TestGrep._reflags)
1313
self.assertNotContainsRe(out, "^dir0/file0.txt~6:v3", flags=TestGrep._reflags)
1458
self.assertContainsRe(out, "^dir0/file0.txt~3:v3",
1459
flags=TestGrep._reflags)
1460
self.assertContainsRe(out, "^dir0/file0.txt~4:v3",
1461
flags=TestGrep._reflags)
1462
self.assertContainsRe(out, "^dir0/file0.txt~5:v3",
1463
flags=TestGrep._reflags)
1464
self.assertNotContainsRe(
1465
out, "^dir0/file0.txt~6:v3", flags=TestGrep._reflags)
1314
1466
self.assertEqual(len(out.splitlines()), 3)
1316
1468
out, err = self.run_bzr(['grep', '-r', '2..5', '[tuv]3'])
1317
self.assertContainsRe(out, "^dir0/file0.txt~3:v3", flags=TestGrep._reflags)
1318
self.assertContainsRe(out, "^dir0/file0.txt~4:v3", flags=TestGrep._reflags)
1319
self.assertContainsRe(out, "^dir0/file0.txt~5:v3", flags=TestGrep._reflags)
1320
self.assertNotContainsRe(out, "^dir0/file0.txt~6:v3", flags=TestGrep._reflags)
1469
self.assertContainsRe(out, "^dir0/file0.txt~3:v3",
1470
flags=TestGrep._reflags)
1471
self.assertContainsRe(out, "^dir0/file0.txt~4:v3",
1472
flags=TestGrep._reflags)
1473
self.assertContainsRe(out, "^dir0/file0.txt~5:v3",
1474
flags=TestGrep._reflags)
1475
self.assertNotContainsRe(
1476
out, "^dir0/file0.txt~6:v3", flags=TestGrep._reflags)
1321
1477
self.assertEqual(len(out.splitlines()), 3)
1323
1479
def test_revno_range_versioned_file_from_outside_dir(self):
1334
1490
self._update_file('dir0/file0.txt', "v6 text\n") # rev6
1336
1492
out, err = self.run_bzr(['grep', '-r', '2..5', 'v3', 'dir0'])
1337
self.assertContainsRe(out, "^dir0/file0.txt~3:v3", flags=TestGrep._reflags)
1338
self.assertContainsRe(out, "^dir0/file0.txt~4:v3", flags=TestGrep._reflags)
1339
self.assertContainsRe(out, "^dir0/file0.txt~5:v3", flags=TestGrep._reflags)
1340
self.assertNotContainsRe(out, "^dir0/file0.txt~6:v3", flags=TestGrep._reflags)
1493
self.assertContainsRe(out, "^dir0/file0.txt~3:v3",
1494
flags=TestGrep._reflags)
1495
self.assertContainsRe(out, "^dir0/file0.txt~4:v3",
1496
flags=TestGrep._reflags)
1497
self.assertContainsRe(out, "^dir0/file0.txt~5:v3",
1498
flags=TestGrep._reflags)
1499
self.assertNotContainsRe(
1500
out, "^dir0/file0.txt~6:v3", flags=TestGrep._reflags)
1342
1502
out, err = self.run_bzr(['grep', '-r', '2..5', '[tuv]3', 'dir0'])
1343
self.assertContainsRe(out, "^dir0/file0.txt~3:v3", flags=TestGrep._reflags)
1344
self.assertContainsRe(out, "^dir0/file0.txt~4:v3", flags=TestGrep._reflags)
1345
self.assertContainsRe(out, "^dir0/file0.txt~5:v3", flags=TestGrep._reflags)
1346
self.assertNotContainsRe(out, "^dir0/file0.txt~6:v3", flags=TestGrep._reflags)
1503
self.assertContainsRe(out, "^dir0/file0.txt~3:v3",
1504
flags=TestGrep._reflags)
1505
self.assertContainsRe(out, "^dir0/file0.txt~4:v3",
1506
flags=TestGrep._reflags)
1507
self.assertContainsRe(out, "^dir0/file0.txt~5:v3",
1508
flags=TestGrep._reflags)
1509
self.assertNotContainsRe(
1510
out, "^dir0/file0.txt~6:v3", flags=TestGrep._reflags)
1348
1512
def test_levels(self):
1349
1513
"""--levels=0 should show findings from merged revision.
1371
1535
# levels should be ignored by wtree grep
1372
1536
out, err = self.run_bzr(['grep', '--levels=0', 'line1'])
1373
self.assertContainsRe(out, "^file0.txt:line1$", flags=TestGrep._reflags)
1374
self.assertContainsRe(out, "^file1.txt:line1$", flags=TestGrep._reflags)
1375
self.assertContainsRe(out, "^file0.txt:line10$", flags=TestGrep._reflags)
1376
self.assertContainsRe(out, "^file1.txt:line10$", flags=TestGrep._reflags)
1537
self.assertContainsRe(out, "^file0.txt:line1$",
1538
flags=TestGrep._reflags)
1539
self.assertContainsRe(out, "^file1.txt:line1$",
1540
flags=TestGrep._reflags)
1541
self.assertContainsRe(out, "^file0.txt:line10$",
1542
flags=TestGrep._reflags)
1543
self.assertContainsRe(out, "^file1.txt:line10$",
1544
flags=TestGrep._reflags)
1377
1545
self.assertEqual(len(out.splitlines()), 4)
1379
out, err = self.run_bzr(['grep', '-r', 'last:1..', '--levels=0', 'line1'])
1380
self.assertContainsRe(out, "^file0.txt~2:line1$", flags=TestGrep._reflags)
1381
self.assertContainsRe(out, "^file1.txt~2:line1$", flags=TestGrep._reflags)
1382
self.assertContainsRe(out, "^file0.txt~1.1.1:line1$", flags=TestGrep._reflags)
1383
self.assertContainsRe(out, "^file1.txt~1.1.1:line1$", flags=TestGrep._reflags)
1384
self.assertContainsRe(out, "^file0.txt~2:line10$", flags=TestGrep._reflags)
1385
self.assertContainsRe(out, "^file1.txt~2:line10$", flags=TestGrep._reflags)
1386
self.assertContainsRe(out, "^file0.txt~1.1.1:line10$", flags=TestGrep._reflags)
1387
self.assertContainsRe(out, "^file1.txt~1.1.1:line10$", flags=TestGrep._reflags)
1547
out, err = self.run_bzr(
1548
['grep', '-r', 'last:1..', '--levels=0', 'line1'])
1549
self.assertContainsRe(out, "^file0.txt~2:line1$",
1550
flags=TestGrep._reflags)
1551
self.assertContainsRe(out, "^file1.txt~2:line1$",
1552
flags=TestGrep._reflags)
1553
self.assertContainsRe(
1554
out, "^file0.txt~1.1.1:line1$", flags=TestGrep._reflags)
1555
self.assertContainsRe(
1556
out, "^file1.txt~1.1.1:line1$", flags=TestGrep._reflags)
1557
self.assertContainsRe(out, "^file0.txt~2:line10$",
1558
flags=TestGrep._reflags)
1559
self.assertContainsRe(out, "^file1.txt~2:line10$",
1560
flags=TestGrep._reflags)
1561
self.assertContainsRe(
1562
out, "^file0.txt~1.1.1:line10$", flags=TestGrep._reflags)
1563
self.assertContainsRe(
1564
out, "^file1.txt~1.1.1:line10$", flags=TestGrep._reflags)
1388
1565
self.assertEqual(len(out.splitlines()), 8)
1390
out, err = self.run_bzr(['grep', '-r', '-1..', '-n', '--levels=0', 'line1'])
1391
self.assertContainsRe(out, "^file0.txt~2:1:line1$", flags=TestGrep._reflags)
1392
self.assertContainsRe(out, "^file1.txt~2:1:line1$", flags=TestGrep._reflags)
1393
self.assertContainsRe(out, "^file0.txt~1.1.1:1:line1$", flags=TestGrep._reflags)
1394
self.assertContainsRe(out, "^file1.txt~1.1.1:1:line1$", flags=TestGrep._reflags)
1395
self.assertContainsRe(out, "^file0.txt~2:10:line10$", flags=TestGrep._reflags)
1396
self.assertContainsRe(out, "^file1.txt~2:10:line10$", flags=TestGrep._reflags)
1397
self.assertContainsRe(out, "^file0.txt~1.1.1:10:line10$", flags=TestGrep._reflags)
1398
self.assertContainsRe(out, "^file1.txt~1.1.1:10:line10$", flags=TestGrep._reflags)
1567
out, err = self.run_bzr(
1568
['grep', '-r', '-1..', '-n', '--levels=0', 'line1'])
1569
self.assertContainsRe(out, "^file0.txt~2:1:line1$",
1570
flags=TestGrep._reflags)
1571
self.assertContainsRe(out, "^file1.txt~2:1:line1$",
1572
flags=TestGrep._reflags)
1573
self.assertContainsRe(
1574
out, "^file0.txt~1.1.1:1:line1$", flags=TestGrep._reflags)
1575
self.assertContainsRe(
1576
out, "^file1.txt~1.1.1:1:line1$", flags=TestGrep._reflags)
1577
self.assertContainsRe(
1578
out, "^file0.txt~2:10:line10$", flags=TestGrep._reflags)
1579
self.assertContainsRe(
1580
out, "^file1.txt~2:10:line10$", flags=TestGrep._reflags)
1581
self.assertContainsRe(
1582
out, "^file0.txt~1.1.1:10:line10$", flags=TestGrep._reflags)
1583
self.assertContainsRe(
1584
out, "^file1.txt~1.1.1:10:line10$", flags=TestGrep._reflags)
1399
1585
self.assertEqual(len(out.splitlines()), 8)
1401
1587
# levels should be ignored by wtree grep
1402
1588
out, err = self.run_bzr(['grep', '--levels=0', 'l.ne1'])
1403
self.assertContainsRe(out, "^file0.txt:line1$", flags=TestGrep._reflags)
1404
self.assertContainsRe(out, "^file1.txt:line1$", flags=TestGrep._reflags)
1405
self.assertContainsRe(out, "^file0.txt:line10$", flags=TestGrep._reflags)
1406
self.assertContainsRe(out, "^file1.txt:line10$", flags=TestGrep._reflags)
1589
self.assertContainsRe(out, "^file0.txt:line1$",
1590
flags=TestGrep._reflags)
1591
self.assertContainsRe(out, "^file1.txt:line1$",
1592
flags=TestGrep._reflags)
1593
self.assertContainsRe(out, "^file0.txt:line10$",
1594
flags=TestGrep._reflags)
1595
self.assertContainsRe(out, "^file1.txt:line10$",
1596
flags=TestGrep._reflags)
1407
1597
self.assertEqual(len(out.splitlines()), 4)
1409
out, err = self.run_bzr(['grep', '-r', 'last:1..', '--levels=0', 'lin.1'])
1410
self.assertContainsRe(out, "^file0.txt~2:line1$", flags=TestGrep._reflags)
1411
self.assertContainsRe(out, "^file1.txt~2:line1$", flags=TestGrep._reflags)
1412
self.assertContainsRe(out, "^file0.txt~1.1.1:line1$", flags=TestGrep._reflags)
1413
self.assertContainsRe(out, "^file1.txt~1.1.1:line1$", flags=TestGrep._reflags)
1414
self.assertContainsRe(out, "^file0.txt~2:line10$", flags=TestGrep._reflags)
1415
self.assertContainsRe(out, "^file1.txt~2:line10$", flags=TestGrep._reflags)
1416
self.assertContainsRe(out, "^file0.txt~1.1.1:line10$", flags=TestGrep._reflags)
1417
self.assertContainsRe(out, "^file1.txt~1.1.1:line10$", flags=TestGrep._reflags)
1599
out, err = self.run_bzr(
1600
['grep', '-r', 'last:1..', '--levels=0', 'lin.1'])
1601
self.assertContainsRe(out, "^file0.txt~2:line1$",
1602
flags=TestGrep._reflags)
1603
self.assertContainsRe(out, "^file1.txt~2:line1$",
1604
flags=TestGrep._reflags)
1605
self.assertContainsRe(
1606
out, "^file0.txt~1.1.1:line1$", flags=TestGrep._reflags)
1607
self.assertContainsRe(
1608
out, "^file1.txt~1.1.1:line1$", flags=TestGrep._reflags)
1609
self.assertContainsRe(out, "^file0.txt~2:line10$",
1610
flags=TestGrep._reflags)
1611
self.assertContainsRe(out, "^file1.txt~2:line10$",
1612
flags=TestGrep._reflags)
1613
self.assertContainsRe(
1614
out, "^file0.txt~1.1.1:line10$", flags=TestGrep._reflags)
1615
self.assertContainsRe(
1616
out, "^file1.txt~1.1.1:line10$", flags=TestGrep._reflags)
1418
1617
self.assertEqual(len(out.splitlines()), 8)
1420
out, err = self.run_bzr(['grep', '-r', '-1..', '-n', '--levels=0', '.ine1'])
1421
self.assertContainsRe(out, "file0.txt~2:1:line1", flags=TestGrep._reflags)
1422
self.assertContainsRe(out, "file1.txt~2:1:line1", flags=TestGrep._reflags)
1423
self.assertContainsRe(out, "file0.txt~1.1.1:1:line1", flags=TestGrep._reflags)
1424
self.assertContainsRe(out, "file1.txt~1.1.1:1:line1", flags=TestGrep._reflags)
1619
out, err = self.run_bzr(
1620
['grep', '-r', '-1..', '-n', '--levels=0', '.ine1'])
1621
self.assertContainsRe(out, "file0.txt~2:1:line1",
1622
flags=TestGrep._reflags)
1623
self.assertContainsRe(out, "file1.txt~2:1:line1",
1624
flags=TestGrep._reflags)
1625
self.assertContainsRe(
1626
out, "file0.txt~1.1.1:1:line1", flags=TestGrep._reflags)
1627
self.assertContainsRe(
1628
out, "file1.txt~1.1.1:1:line1", flags=TestGrep._reflags)
1426
1630
def test_dotted_rev_grep(self):
1427
1631
"""Grep in dotted revs
1546
1761
out, err = self.run_bzr(['grep', '--files-with-matches', 'HELLO'])
1548
1763
self.assertContainsRe(out, "^file0.txt$", flags=TestGrep._reflags)
1549
self.assertContainsRe(out, "^dir0/file00.txt$", flags=TestGrep._reflags)
1764
self.assertContainsRe(out, "^dir0/file00.txt$",
1765
flags=TestGrep._reflags)
1550
1766
self.assertEqual(len(out.splitlines()), 2)
1553
1769
out, err = self.run_bzr(['grep', '--files-with-matches', 'HE.LO'])
1555
1771
self.assertContainsRe(out, "^file0.txt$", flags=TestGrep._reflags)
1556
self.assertContainsRe(out, "^dir0/file00.txt$", flags=TestGrep._reflags)
1772
self.assertContainsRe(out, "^dir0/file00.txt$",
1773
flags=TestGrep._reflags)
1557
1774
self.assertEqual(len(out.splitlines()), 2)
1560
1777
out, err = self.run_bzr(['grep', '-l', 'HELLO'])
1562
1779
self.assertContainsRe(out, "^file0.txt$", flags=TestGrep._reflags)
1563
self.assertContainsRe(out, "^dir0/file00.txt$", flags=TestGrep._reflags)
1780
self.assertContainsRe(out, "^dir0/file00.txt$",
1781
flags=TestGrep._reflags)
1564
1782
self.assertEqual(len(out.splitlines()), 2)
1567
1785
out, err = self.run_bzr(['grep', '-l', 'HE.LO'])
1569
1787
self.assertContainsRe(out, "^file0.txt$", flags=TestGrep._reflags)
1570
self.assertContainsRe(out, "^dir0/file00.txt$", flags=TestGrep._reflags)
1788
self.assertContainsRe(out, "^dir0/file00.txt$",
1789
flags=TestGrep._reflags)
1571
1790
self.assertEqual(len(out.splitlines()), 2)
1574
1793
out, err = self.run_bzr(['grep', '-l', 'HELLO', 'dir0', 'file1.txt'])
1576
self.assertContainsRe(out, "^dir0/file00.txt$", flags=TestGrep._reflags)
1795
self.assertContainsRe(out, "^dir0/file00.txt$",
1796
flags=TestGrep._reflags)
1577
1797
self.assertEqual(len(out.splitlines()), 1)
1580
1800
out, err = self.run_bzr(['grep', '-l', '.ELLO', 'dir0', 'file1.txt'])
1582
self.assertContainsRe(out, "^dir0/file00.txt$", flags=TestGrep._reflags)
1802
self.assertContainsRe(out, "^dir0/file00.txt$",
1803
flags=TestGrep._reflags)
1583
1804
self.assertEqual(len(out.splitlines()), 1)
1626
1847
out, err = self.run_bzr(['grep', '-r', '-1', '--files-with-matches',
1629
1850
self.assertContainsRe(out, "^file0.txt~7$", flags=TestGrep._reflags)
1630
self.assertContainsRe(out, "^dir0/file00.txt~7$", flags=TestGrep._reflags)
1851
self.assertContainsRe(out, "^dir0/file00.txt~7$",
1852
flags=TestGrep._reflags)
1631
1853
self.assertEqual(len(out.splitlines()), 2)
1634
1856
out, err = self.run_bzr(['grep', '-r', '-1', '--files-with-matches',
1637
1859
self.assertContainsRe(out, "^file0.txt~7$", flags=TestGrep._reflags)
1638
self.assertContainsRe(out, "^dir0/file00.txt~7$", flags=TestGrep._reflags)
1860
self.assertContainsRe(out, "^dir0/file00.txt~7$",
1861
flags=TestGrep._reflags)
1639
1862
self.assertEqual(len(out.splitlines()), 2)
1642
1865
out, err = self.run_bzr(['grep', '-r', '6..7', '--files-with-matches',
1645
1868
self.assertContainsRe(out, "^file0.txt~6$", flags=TestGrep._reflags)
1646
1869
self.assertContainsRe(out, "^file0.txt~7$", flags=TestGrep._reflags)
1647
self.assertContainsRe(out, "^dir0/file00.txt~7$", flags=TestGrep._reflags)
1870
self.assertContainsRe(out, "^dir0/file00.txt~7$",
1871
flags=TestGrep._reflags)
1648
1872
self.assertEqual(len(out.splitlines()), 3)
1651
1875
out, err = self.run_bzr(['grep', '-r', '6..7', '--files-with-matches',
1654
1878
self.assertContainsRe(out, "^file0.txt~6$", flags=TestGrep._reflags)
1655
1879
self.assertContainsRe(out, "^file0.txt~7$", flags=TestGrep._reflags)
1656
self.assertContainsRe(out, "^dir0/file00.txt~7$", flags=TestGrep._reflags)
1880
self.assertContainsRe(out, "^dir0/file00.txt~7$",
1881
flags=TestGrep._reflags)
1657
1882
self.assertEqual(len(out.splitlines()), 3)
1660
1885
out, err = self.run_bzr(['grep', '-r', '-1', '-l', 'HELLO'])
1662
1887
self.assertContainsRe(out, "^file0.txt~7$", flags=TestGrep._reflags)
1663
self.assertContainsRe(out, "^dir0/file00.txt~7$", flags=TestGrep._reflags)
1888
self.assertContainsRe(out, "^dir0/file00.txt~7$",
1889
flags=TestGrep._reflags)
1664
1890
self.assertEqual(len(out.splitlines()), 2)
1667
1893
out, err = self.run_bzr(['grep', '-r', '-1', '-l', 'H.LLO'])
1669
1895
self.assertContainsRe(out, "^file0.txt~7$", flags=TestGrep._reflags)
1670
self.assertContainsRe(out, "^dir0/file00.txt~7$", flags=TestGrep._reflags)
1896
self.assertContainsRe(out, "^dir0/file00.txt~7$",
1897
flags=TestGrep._reflags)
1671
1898
self.assertEqual(len(out.splitlines()), 2)
1674
1901
out, err = self.run_bzr(['grep', '-l', 'HELLO', '-r', '-1',
1675
'dir0', 'file1.txt'])
1902
'dir0', 'file1.txt'])
1677
self.assertContainsRe(out, "^dir0/file00.txt~7$", flags=TestGrep._reflags)
1904
self.assertContainsRe(out, "^dir0/file00.txt~7$",
1905
flags=TestGrep._reflags)
1678
1906
self.assertEqual(len(out.splitlines()), 1)
1681
1909
out, err = self.run_bzr(['grep', '-l', 'H.LLO', '-r', '-1',
1682
'dir0', 'file1.txt'])
1910
'dir0', 'file1.txt'])
1684
self.assertContainsRe(out, "^dir0/file00.txt~7$", flags=TestGrep._reflags)
1912
self.assertContainsRe(out, "^dir0/file00.txt~7$",
1913
flags=TestGrep._reflags)
1685
1914
self.assertEqual(len(out.splitlines()), 1)
1688
1917
out, err = self.run_bzr(['grep', '-l', 'HELLO',
1689
'-r', '-2', 'file0.txt'])
1918
'-r', '-2', 'file0.txt'])
1691
1920
self.assertContainsRe(out, "^file0.txt~6$", flags=TestGrep._reflags)
1692
1921
self.assertEqual(len(out.splitlines()), 1)
1695
1924
out, err = self.run_bzr(['grep', '-l', 'HE.LO',
1696
'-r', '-2', 'file0.txt'])
1925
'-r', '-2', 'file0.txt'])
1698
1927
self.assertContainsRe(out, "^file0.txt~6$", flags=TestGrep._reflags)
1699
1928
self.assertEqual(len(out.splitlines()), 1)
1702
1931
out, err = self.run_bzr(['grep', '--no-recursive', '-r', '-1',
1705
1934
self.assertContainsRe(out, "^file0.txt~7$", flags=TestGrep._reflags)
1706
1935
self.assertEqual(len(out.splitlines()), 1)
1709
1938
out, err = self.run_bzr(['grep', '--no-recursive', '-r', '-1',
1712
1941
self.assertContainsRe(out, "^file0.txt~7$", flags=TestGrep._reflags)
1713
1942
self.assertEqual(len(out.splitlines()), 1)
1732
1961
out, err = self.run_bzr(['grep', '--files-without-match', 'HELLO'])
1734
1963
self.assertContainsRe(out, "^file1.txt$", flags=TestGrep._reflags)
1735
self.assertContainsRe(out, "^dir0/file01.txt$", flags=TestGrep._reflags)
1964
self.assertContainsRe(out, "^dir0/file01.txt$",
1965
flags=TestGrep._reflags)
1736
1966
self.assertEqual(len(out.splitlines()), 2)
1739
1969
out, err = self.run_bzr(['grep', '--files-without-match', 'HE.LO'])
1741
1971
self.assertContainsRe(out, "^file1.txt$", flags=TestGrep._reflags)
1742
self.assertContainsRe(out, "^dir0/file01.txt$", flags=TestGrep._reflags)
1972
self.assertContainsRe(out, "^dir0/file01.txt$",
1973
flags=TestGrep._reflags)
1743
1974
self.assertEqual(len(out.splitlines()), 2)
1746
1977
out, err = self.run_bzr(['grep', '-L', 'HELLO'])
1748
1979
self.assertContainsRe(out, "^file1.txt$", flags=TestGrep._reflags)
1749
self.assertContainsRe(out, "^dir0/file01.txt$", flags=TestGrep._reflags)
1980
self.assertContainsRe(out, "^dir0/file01.txt$",
1981
flags=TestGrep._reflags)
1750
1982
self.assertEqual(len(out.splitlines()), 2)
1753
1985
out, err = self.run_bzr(['grep', '-L', 'HE.LO'])
1755
1987
self.assertContainsRe(out, "^file1.txt$", flags=TestGrep._reflags)
1756
self.assertContainsRe(out, "^dir0/file01.txt$", flags=TestGrep._reflags)
1988
self.assertContainsRe(out, "^dir0/file01.txt$",
1989
flags=TestGrep._reflags)
1757
1990
self.assertEqual(len(out.splitlines()), 2)
1760
1993
out, err = self.run_bzr(['grep', '-L', 'HELLO', 'dir0', 'file1.txt'])
1762
1995
self.assertContainsRe(out, "^file1.txt$", flags=TestGrep._reflags)
1763
self.assertContainsRe(out, "^dir0/file01.txt$", flags=TestGrep._reflags)
1996
self.assertContainsRe(out, "^dir0/file01.txt$",
1997
flags=TestGrep._reflags)
1764
1998
self.assertEqual(len(out.splitlines()), 2)
1767
2001
out, err = self.run_bzr(['grep', '-L', '.ELLO', 'dir0', 'file1.txt'])
1769
2003
self.assertContainsRe(out, "^file1.txt$", flags=TestGrep._reflags)
1770
self.assertContainsRe(out, "^dir0/file01.txt$", flags=TestGrep._reflags)
2004
self.assertContainsRe(out, "^dir0/file01.txt$",
2005
flags=TestGrep._reflags)
1771
2006
self.assertEqual(len(out.splitlines()), 2)
1814
2049
out, err = self.run_bzr(['grep', '-r', '-1', '--files-without-match',
1817
2052
self.assertContainsRe(out, "^file1.txt~7$", flags=TestGrep._reflags)
1818
self.assertContainsRe(out, "^dir0/file01.txt~7$", flags=TestGrep._reflags)
2053
self.assertContainsRe(out, "^dir0/file01.txt~7$",
2054
flags=TestGrep._reflags)
1819
2055
self.assertEqual(len(out.splitlines()), 2)
1822
2058
out, err = self.run_bzr(['grep', '-r', '-1', '--files-without-match',
1825
2061
self.assertContainsRe(out, "^file1.txt~7$", flags=TestGrep._reflags)
1826
self.assertContainsRe(out, "^dir0/file01.txt~7$", flags=TestGrep._reflags)
2062
self.assertContainsRe(out, "^dir0/file01.txt~7$",
2063
flags=TestGrep._reflags)
1827
2064
self.assertEqual(len(out.splitlines()), 2)
1830
2067
out, err = self.run_bzr(['grep', '-r', '6..7', '--files-without-match',
1833
2070
self.assertContainsRe(out, "^file1.txt~6$", flags=TestGrep._reflags)
1834
self.assertContainsRe(out, "^dir0/file00.txt~6$", flags=TestGrep._reflags)
1835
self.assertContainsRe(out, "^dir0/file01.txt~6$", flags=TestGrep._reflags)
2071
self.assertContainsRe(out, "^dir0/file00.txt~6$",
2072
flags=TestGrep._reflags)
2073
self.assertContainsRe(out, "^dir0/file01.txt~6$",
2074
flags=TestGrep._reflags)
1836
2075
self.assertContainsRe(out, "^file1.txt~7$", flags=TestGrep._reflags)
1837
self.assertContainsRe(out, "^dir0/file01.txt~7$", flags=TestGrep._reflags)
2076
self.assertContainsRe(out, "^dir0/file01.txt~7$",
2077
flags=TestGrep._reflags)
1838
2078
self.assertEqual(len(out.splitlines()), 5)
1841
2081
out, err = self.run_bzr(['grep', '-r', '6..7', '--files-without-match',
1844
2084
self.assertContainsRe(out, "^file1.txt~6$", flags=TestGrep._reflags)
1845
self.assertContainsRe(out, "^dir0/file00.txt~6$", flags=TestGrep._reflags)
1846
self.assertContainsRe(out, "^dir0/file01.txt~6$", flags=TestGrep._reflags)
2085
self.assertContainsRe(out, "^dir0/file00.txt~6$",
2086
flags=TestGrep._reflags)
2087
self.assertContainsRe(out, "^dir0/file01.txt~6$",
2088
flags=TestGrep._reflags)
1847
2089
self.assertContainsRe(out, "^file1.txt~7$", flags=TestGrep._reflags)
1848
self.assertContainsRe(out, "^dir0/file01.txt~7$", flags=TestGrep._reflags)
2090
self.assertContainsRe(out, "^dir0/file01.txt~7$",
2091
flags=TestGrep._reflags)
1849
2092
self.assertEqual(len(out.splitlines()), 5)
1852
2095
out, err = self.run_bzr(['grep', '-r', '-1', '-L', 'HELLO'])
1854
2097
self.assertContainsRe(out, "^file1.txt~7$", flags=TestGrep._reflags)
1855
self.assertContainsRe(out, "^dir0/file01.txt~7$", flags=TestGrep._reflags)
2098
self.assertContainsRe(out, "^dir0/file01.txt~7$",
2099
flags=TestGrep._reflags)
1856
2100
self.assertEqual(len(out.splitlines()), 2)
1859
2103
out, err = self.run_bzr(['grep', '-r', '-1', '-L', 'H.LLO'])
1861
2105
self.assertContainsRe(out, "^file1.txt~7$", flags=TestGrep._reflags)
1862
self.assertContainsRe(out, "^dir0/file01.txt~7$", flags=TestGrep._reflags)
2106
self.assertContainsRe(out, "^dir0/file01.txt~7$",
2107
flags=TestGrep._reflags)
1863
2108
self.assertEqual(len(out.splitlines()), 2)
1866
2111
out, err = self.run_bzr(['grep', '-L', 'HELLO', '-r', '-1',
1867
'dir0', 'file1.txt'])
2112
'dir0', 'file1.txt'])
1869
2114
self.assertContainsRe(out, "^file1.txt~7$", flags=TestGrep._reflags)
1870
self.assertContainsRe(out, "^dir0/file01.txt~7$", flags=TestGrep._reflags)
2115
self.assertContainsRe(out, "^dir0/file01.txt~7$",
2116
flags=TestGrep._reflags)
1871
2117
self.assertEqual(len(out.splitlines()), 2)
1874
2120
out, err = self.run_bzr(['grep', '-L', 'H.LLO', '-r', '-1',
1875
'dir0', 'file1.txt'])
2121
'dir0', 'file1.txt'])
1877
2123
self.assertContainsRe(out, "^file1.txt~7$", flags=TestGrep._reflags)
1878
self.assertContainsRe(out, "^dir0/file01.txt~7$", flags=TestGrep._reflags)
2124
self.assertContainsRe(out, "^dir0/file01.txt~7$",
2125
flags=TestGrep._reflags)
1879
2126
self.assertEqual(len(out.splitlines()), 2)
1882
2129
out, err = self.run_bzr(['grep', '-L', 'HELLO',
1883
'-r', '-2', 'file1.txt'])
2130
'-r', '-2', 'file1.txt'])
1885
2132
self.assertContainsRe(out, "^file1.txt~6$", flags=TestGrep._reflags)
1886
2133
self.assertEqual(len(out.splitlines()), 1)
1889
2136
out, err = self.run_bzr(['grep', '-L', 'HE.LO',
1890
'-r', '-2', 'file1.txt'])
2137
'-r', '-2', 'file1.txt'])
1892
2139
self.assertContainsRe(out, "^file1.txt~6$", flags=TestGrep._reflags)
1893
2140
self.assertEqual(len(out.splitlines()), 1)
1896
2143
out, err = self.run_bzr(['grep', '--no-recursive', '-r', '-1',
1899
2146
self.assertContainsRe(out, "^file1.txt~7$", flags=TestGrep._reflags)
1900
2147
self.assertEqual(len(out.splitlines()), 1)
1903
2150
out, err = self.run_bzr(['grep', '--no-recursive', '-r', '-1',
1906
2153
self.assertContainsRe(out, "^file1.txt~7$", flags=TestGrep._reflags)
1907
2154
self.assertEqual(len(out.splitlines()), 1)
1944
2193
# GZ 2010-06-07: Note we can't actually grep for \u1234 as the pattern
1945
2194
# is mangled according to the user encoding.
1946
2195
streams = self.run_bzr_raw(["grep", "--files-with-matches",
1947
u"contents"], encoding="UTF-8")
2196
u"contents"], encoding="UTF-8")
1948
2197
as_utf8 = as_utf8.encode("UTF-8")
1949
2198
self.assertEqual(streams, (as_utf8 + b"\n", b""))
1951
2200
streams = self.run_bzr_raw(["grep", "-r", "1", "--files-with-matches",
1952
u"contents"], encoding="UTF-8")
2201
u"contents"], encoding="UTF-8")
1953
2202
self.assertEqual(streams, (as_utf8 + b"~1\n", b""))
1955
2204
fileencoding = osutils.get_user_encoding()
1956
2205
as_mangled = as_utf8.decode(fileencoding, "replace").encode("UTF-8")
1958
2207
streams = self.run_bzr_raw(["grep", "-n",
1959
u"contents"], encoding="UTF-8")
2208
u"contents"], encoding="UTF-8")
1960
2209
self.assertEqual(streams, (b"%s:1:contents of %s\n" %
1961
(as_utf8, as_mangled), b""))
2210
(as_utf8, as_mangled), b""))
1963
2212
streams = self.run_bzr_raw(["grep", "-n", "-r", "1",
1964
u"contents"], encoding="UTF-8")
2213
u"contents"], encoding="UTF-8")
1965
2214
self.assertEqual(streams, (b"%s~1:1:contents of %s\n" %
1966
(as_utf8, as_mangled), b""))
2215
(as_utf8, as_mangled), b""))
1969
2218
class TestColorGrep(GrepTestBase):
2035
2285
# prepare colored result
2036
2286
foo = color_string('foo', fg=FG.BOLD_RED)
2037
2287
res = (FG.MAGENTA + 'file0.txt'
2038
+ self._rev_sep + '1' + self._sep
2039
+ foo + ' is ' + foo + 'bar1' + '\n')
2288
+ self._rev_sep + '1' + self._sep
2289
+ foo + ' is ' + foo + 'bar1' + '\n')
2040
2290
txt_res = 'file0.txt~1:foo is foobar1\n'
2042
2292
nres = (FG.MAGENTA + 'file0.txt'
2043
+ self._rev_sep + '1' + self._sep + '1' + self._sep
2044
+ foo + ' is ' + foo + 'bar1' + '\n')
2293
+ self._rev_sep + '1' + self._sep + '1' + self._sep
2294
+ foo + ' is ' + foo + 'bar1' + '\n')
2046
2296
out, err = self.run_bzr(['grep', '--color',
2047
'always', '-r', '1', 'foo'])
2297
'always', '-r', '1', 'foo'])
2048
2298
self.assertEqual(out, res)
2049
2299
self.assertEqual(len(out.splitlines()), 1)
2051
2301
# auto should produce plain text result
2052
2302
# as stdout is redireched here.
2053
2303
out, err = self.run_bzr(['grep', '--color',
2054
'auto', '-r', '1', 'foo'])
2304
'auto', '-r', '1', 'foo'])
2055
2305
self.assertEqual(out, txt_res)
2056
2306
self.assertEqual(len(out.splitlines()), 1)
2058
2308
out, err = self.run_bzr(['grep', '-i', '--color',
2059
'always', '-r', '1', 'FOO'])
2309
'always', '-r', '1', 'FOO'])
2060
2310
self.assertEqual(out, res)
2061
2311
self.assertEqual(len(out.splitlines()), 1)
2063
2313
out, err = self.run_bzr(['grep', '--color',
2064
'always', '-r', '1', 'f.o'])
2314
'always', '-r', '1', 'f.o'])
2065
2315
self.assertEqual(out, res)
2066
2316
self.assertEqual(len(out.splitlines()), 1)
2068
2318
out, err = self.run_bzr(['grep', '-i', '--color',
2069
'always', '-r', '1', 'F.O'])
2319
'always', '-r', '1', 'F.O'])
2070
2320
self.assertEqual(out, res)
2071
2321
self.assertEqual(len(out.splitlines()), 1)
2073
2323
out, err = self.run_bzr(['grep', '-n', '--color',
2074
'always', '-r', '1', 'foo'])
2324
'always', '-r', '1', 'foo'])
2075
2325
self.assertEqual(out, nres)
2076
2326
self.assertEqual(len(out.splitlines()), 1)
2078
2328
out, err = self.run_bzr(['grep', '-n', '-i', '--color',
2079
'always', '-r', '1', 'FOO'])
2329
'always', '-r', '1', 'FOO'])
2080
2330
self.assertEqual(out, nres)
2081
2331
self.assertEqual(len(out.splitlines()), 1)
2083
2333
out, err = self.run_bzr(['grep', '-n', '--color',
2084
'always', '-r', '1', 'f.o'])
2334
'always', '-r', '1', 'f.o'])
2085
2335
self.assertEqual(out, nres)
2086
2336
self.assertEqual(len(out.splitlines()), 1)
2088
2338
out, err = self.run_bzr(['grep', '-n', '-i', '--color',
2089
'always', '-r', '1', 'F.O'])
2339
'always', '-r', '1', 'F.O'])
2090
2340
self.assertEqual(out, nres)
2091
2341
self.assertEqual(len(out.splitlines()), 1)
2102
2352
# prepare colored result
2103
2353
foo = color_string('foo', fg=FG.BOLD_RED)
2104
2354
res = (FG.MAGENTA + 'file0.txt'
2105
+ self._sep + foo + ' is ' + foo + 'bar1' + '\n')
2355
+ self._sep + foo + ' is ' + foo + 'bar1' + '\n')
2107
2357
nres = (FG.MAGENTA + 'file0.txt'
2108
+ self._sep + '1' + self._sep
2109
+ foo + ' is ' + foo + 'bar1' + '\n')
2111
out, err = self.run_bzr(['grep', '--color',
2113
self.assertEqual(out, res)
2114
self.assertEqual(len(out.splitlines()), 1)
2116
out, err = self.run_bzr(['grep', '-i', '--color',
2118
self.assertEqual(out, res)
2119
self.assertEqual(len(out.splitlines()), 1)
2121
out, err = self.run_bzr(['grep', '--color',
2123
self.assertEqual(out, res)
2124
self.assertEqual(len(out.splitlines()), 1)
2126
out, err = self.run_bzr(['grep', '-i', '--color',
2128
self.assertEqual(out, res)
2129
self.assertEqual(len(out.splitlines()), 1)
2131
out, err = self.run_bzr(['grep', '-n', '--color',
2133
self.assertEqual(out, nres)
2134
self.assertEqual(len(out.splitlines()), 1)
2136
out, err = self.run_bzr(['grep', '-n', '-i', '--color',
2138
self.assertEqual(out, nres)
2139
self.assertEqual(len(out.splitlines()), 1)
2141
out, err = self.run_bzr(['grep', '-n', '--color',
2143
self.assertEqual(out, nres)
2144
self.assertEqual(len(out.splitlines()), 1)
2146
out, err = self.run_bzr(['grep', '-n', '-i', '--color',
2358
+ self._sep + '1' + self._sep
2359
+ foo + ' is ' + foo + 'bar1' + '\n')
2361
out, err = self.run_bzr(['grep', '--color',
2363
self.assertEqual(out, res)
2364
self.assertEqual(len(out.splitlines()), 1)
2366
out, err = self.run_bzr(['grep', '-i', '--color',
2368
self.assertEqual(out, res)
2369
self.assertEqual(len(out.splitlines()), 1)
2371
out, err = self.run_bzr(['grep', '--color',
2373
self.assertEqual(out, res)
2374
self.assertEqual(len(out.splitlines()), 1)
2376
out, err = self.run_bzr(['grep', '-i', '--color',
2378
self.assertEqual(out, res)
2379
self.assertEqual(len(out.splitlines()), 1)
2381
out, err = self.run_bzr(['grep', '-n', '--color',
2383
self.assertEqual(out, nres)
2384
self.assertEqual(len(out.splitlines()), 1)
2386
out, err = self.run_bzr(['grep', '-n', '-i', '--color',
2388
self.assertEqual(out, nres)
2389
self.assertEqual(len(out.splitlines()), 1)
2391
out, err = self.run_bzr(['grep', '-n', '--color',
2393
self.assertEqual(out, nres)
2394
self.assertEqual(len(out.splitlines()), 1)
2396
out, err = self.run_bzr(['grep', '-n', '-i', '--color',
2148
2398
self.assertEqual(out, nres)
2149
2399
self.assertEqual(len(out.splitlines()), 1)