~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to test_grep.py

  • Committer: Parth Malwankar
  • Date: 2010-02-27 15:19:00 UTC
  • mto: (0.44.2 grep) (6531.3.1 merge-grep)
  • mto: This revision was merged to the branch mainline in revision 6555.
  • Revision ID: parth.malwankar@gmail.com-20100227151900-m03ba6th5ltkwt5p
fixed asserts and added test for revno based grep

Show diffs side-by-side

added added

removed removed

Lines of Context:
65
65
        os.chdir(wd)
66
66
        self._mk_unversioned_file('file0.txt')
67
67
        out, err = self.run_bzr(['grep', 'line1', 'file0.txt'])
68
 
        self.assertFalse(out, self._str_contains(out, "file0.txt:line1"))
69
 
        self.assertTrue(err, self._str_contains(err, "warning: skipped.*file0.txt.*\."))
 
68
        self.assertFalse(self._str_contains(out, "file0.txt:line1"))
 
69
        self.assertTrue(self._str_contains(err, "warning: skipped.*file0.txt.*\."))
70
70
 
71
71
    def test_basic_versioned_file(self):
72
72
        """search for pattern in specfic file"""
75
75
        os.chdir(wd)
76
76
        self._mk_versioned_file('file0.txt')
77
77
        out, err = self.run_bzr(['grep', 'line1', 'file0.txt'])
78
 
        self.assertTrue(out, self._str_contains(out, "file0.txt:line1"))
79
 
        self.assertFalse(err, self._str_contains(err, "warning: skipped.*file0.txt.*\."))
 
78
        self.assertTrue(self._str_contains(out, "file0.txt:line1"))
 
79
        self.assertFalse(self._str_contains(err, "warning: skipped.*file0.txt.*\."))
80
80
 
81
81
    def test_multiple_files(self):
82
82
        """search for pattern in multiple files"""
88
88
        self._mk_versioned_file('file2.txt', total_lines=2)
89
89
        out, err = self.run_bzr(['grep', 'line[1-2]'])
90
90
 
91
 
        self.assertTrue(out, self._str_contains(out, "file0.txt:line1"))
92
 
        self.assertTrue(out, self._str_contains(out, "file0.txt:line2"))
93
 
        self.assertTrue(out, self._str_contains(out, "file1.txt:line1"))
94
 
        self.assertTrue(out, self._str_contains(out, "file1.txt:line2"))
95
 
        self.assertTrue(out, self._str_contains(out, "file2.txt:line1"))
96
 
        self.assertTrue(out, self._str_contains(out, "file2.txt:line2"))
 
91
        self.assertTrue(self._str_contains(out, "file0.txt:line1"))
 
92
        self.assertTrue(self._str_contains(out, "file0.txt:line2"))
 
93
        self.assertTrue(self._str_contains(out, "file1.txt:line1"))
 
94
        self.assertTrue(self._str_contains(out, "file1.txt:line2"))
 
95
        self.assertTrue(self._str_contains(out, "file2.txt:line1"))
 
96
        self.assertTrue(self._str_contains(out, "file2.txt:line2"))
97
97
 
98
98
    def test_null_option(self):
99
99
        """--null option should use NUL instead of newline"""
116
116
        self._mk_versioned_dir('dir0')
117
117
        self._mk_versioned_file('dir0/file0.txt')
118
118
        out, err = self.run_bzr(['grep', 'line1'])
119
 
        self.assertFalse(out, self._str_contains(out, "file0.txt:line1"))
 
119
        self.assertFalse(self._str_contains(out, "file0.txt:line1"))
120
120
 
121
121
    def test_versioned_file_in_dir_recurse(self):
122
122
        """should find pattern in hierarchy with -R"""
126
126
        self._mk_versioned_dir('dir0')
127
127
        self._mk_versioned_file('dir0/file0.txt')
128
128
        out, err = self.run_bzr(['grep', '-R', 'line1'])
129
 
        self.assertTrue(out, self._str_contains(out, "^dir0/file0.txt:line1"))
 
129
        self.assertTrue(self._str_contains(out, "^dir0/file0.txt:line1"))
130
130
        out, err = self.run_bzr(['grep', '--recursive', 'line1'])
131
 
        self.assertTrue(out, self._str_contains(out, "^dir0/file0.txt:line1"))
 
131
        self.assertTrue(self._str_contains(out, "^dir0/file0.txt:line1"))
132
132
 
133
133
    def test_versioned_file_within_dir(self):
134
134
        """search for pattern while in nested dir"""
139
139
        self._mk_versioned_file('dir0/file0.txt')
140
140
        os.chdir('dir0')
141
141
        out, err = self.run_bzr(['grep', 'line1'])
142
 
        self.assertTrue(out, self._str_contains(out, "^file0.txt:line1"))
 
142
        self.assertTrue(self._str_contains(out, "^file0.txt:line1"))
143
143
 
144
144
    def test_versioned_file_within_dir_two_levels(self):
145
145
        """search for pattern while in nested dir (two levels)"""
151
151
        self._mk_versioned_file('dir0/dir1/file0.txt')
152
152
        os.chdir('dir0')
153
153
        out, err = self.run_bzr(['grep', '-R', 'line1'])
154
 
        self.assertTrue(out, self._str_contains(out, "^dir1/file0.txt:line1"))
 
154
        self.assertTrue(self._str_contains(out, "^dir1/file0.txt:line1"))
155
155
        out, err = self.run_bzr(['grep', '--from-root', 'line1'])
156
 
        self.assertTrue(out, self._str_contains(out, "^dir0/dir1/file0.txt:line1"))
 
156
        self.assertTrue(self._str_contains(out, "^dir0/dir1/file0.txt:line1"))
157
157
        out, err = self.run_bzr(['grep', 'line1'])
158
 
        self.assertFalse(out, self._str_contains(out, "file0.txt"))
 
158
        self.assertFalse(self._str_contains(out, "file0.txt"))
159
159
 
160
160
    def test_ignore_case_no_match(self):
161
161
        """match fails without --ignore-case"""
164
164
        os.chdir(wd)
165
165
        self._mk_versioned_file('file0.txt')
166
166
        out, err = self.run_bzr(['grep', 'LinE1', 'file0.txt'])
167
 
        self.assertFalse(out, self._str_contains(out, "file0.txt:line1"))
 
167
        self.assertFalse(self._str_contains(out, "file0.txt:line1"))
168
168
 
169
169
    def test_ignore_case_match(self):
170
170
        """match fails without --ignore-case"""
173
173
        os.chdir(wd)
174
174
        self._mk_versioned_file('file0.txt')
175
175
        out, err = self.run_bzr(['grep', '-i', 'LinE1', 'file0.txt'])
176
 
        self.assertTrue(out, self._str_contains(out, "file0.txt:line1"))
 
176
        self.assertTrue(self._str_contains(out, "file0.txt:line1"))
177
177
        out, err = self.run_bzr(['grep', '--ignore-case', 'LinE1', 'file0.txt'])
178
 
        self.assertTrue(out, self._str_contains(out, "^file0.txt:line1"))
 
178
        self.assertTrue(self._str_contains(out, "^file0.txt:line1"))
179
179
 
180
180
    def test_from_root_fail(self):
181
181
        """match should fail without --from-root"""
186
186
        self._mk_versioned_dir('dir0')
187
187
        os.chdir('dir0')
188
188
        out, err = self.run_bzr(['grep', 'line1'])
189
 
        self.assertFalse(out, self._str_contains(out, ".*file0.txt:line1"))
 
189
        self.assertFalse(self._str_contains(out, ".*file0.txt:line1"))
190
190
 
191
191
    def test_from_root_pass(self):
192
192
        """match pass with --from-root"""
197
197
        self._mk_versioned_dir('dir0')
198
198
        os.chdir('dir0')
199
199
        out, err = self.run_bzr(['grep', '--from-root', 'line1'])
200
 
        self.assertTrue(out, self._str_contains(out, ".*file0.txt:line1"))
 
200
        self.assertTrue(self._str_contains(out, ".*file0.txt:line1"))
201
201
 
202
202
    def test_with_line_number(self):
203
203
        """search for pattern with --line-number"""
205
205
        self.make_branch_and_tree(wd)
206
206
        os.chdir(wd)
207
207
        self._mk_versioned_file('file0.txt')
 
208
 
208
209
        out, err = self.run_bzr(['grep', '--line-number', 'line3', 'file0.txt'])
209
 
        self.assertTrue(out, self._str_contains(out, "file0.txt:3:line1"))
 
210
        self.assertTrue(self._str_contains(out, "file0.txt:3:line3"))
 
211
 
210
212
        out, err = self.run_bzr(['grep', '-n', 'line1', 'file0.txt'])
211
 
        self.assertTrue(out, self._str_contains(out, "file0.txt:1:line1"))
 
213
        self.assertTrue(self._str_contains(out, "file0.txt:1:line1"))
212
214
 
213
 
    def test_basic_history_grep_file(self):
 
215
    def test_revno_basic_history_grep_file(self):
214
216
        """search for pattern in specific revision number in a file"""
215
217
        wd = 'foobar0'
216
218
        fname = 'file0.txt'
217
219
        self.make_branch_and_tree(wd)
218
220
        os.chdir(wd)
219
 
        self._mk_versioned_file(fname)
 
221
        self._mk_versioned_file(fname, total_lines=0)
220
222
        self._update_file(fname, text="v2 text\n")
221
223
        self._update_file(fname, text="v3 text\n")
222
224
        self._update_file(fname, text="v4 text\n")
223
225
 
224
226
        # rev 2 should not have text 'v3'
225
227
        out, err = self.run_bzr(['grep', '-r', '2', 'v3', fname])
226
 
        self.assertFalse(out, self._str_contains(out, "file0.txt"))
 
228
        self.assertFalse(self._str_contains(out, "file0.txt"))
227
229
 
228
230
        # rev 3 should not have text 'v3'
229
231
        out, err = self.run_bzr(['grep', '-r', '3', 'v3', fname])
230
 
        self.assertTrue(out, self._str_contains(out, "file0.txt~3:v3.*"))
 
232
        self.assertTrue(self._str_contains(out, "file0.txt~3:v3.*"))
231
233
 
232
234
        # rev 3 should not have text 'v3' with line number
233
235
        out, err = self.run_bzr(['grep', '-r', '3', '-n', 'v3', fname])
234
 
        self.assertTrue(out, self._str_contains(out, "file0.txt~3:2:v3.*"))
 
236
        self.assertTrue(self._str_contains(out, "file0.txt~3:2:v3.*"))
235
237
 
236
 
    def test_basic_history_grep_full(self):
 
238
    def test_revno_basic_history_grep_full(self):
237
239
        """search for pattern in specific revision number in a file"""
238
240
        wd = 'foobar0'
239
241
        fname = 'file0.txt'
240
242
        self.make_branch_and_tree(wd)
241
243
        os.chdir(wd)
242
 
        self._mk_versioned_file(fname)              # rev1
243
 
        self._mk_versioned_file('file1.txt')        # rev2
244
 
        self._update_file(fname, text="v3 text\n")  # rev3
245
 
        self._update_file(fname, text="v4 text\n")  # rev4
246
 
        self._update_file(fname, text="v5 text\n")  # rev5
 
244
        self._mk_versioned_file(fname, total_lines=0) # rev1
 
245
        self._mk_versioned_file('file1.txt')          # rev2
 
246
        self._update_file(fname, text="v3 text\n")    # rev3
 
247
        self._update_file(fname, text="v4 text\n")    # rev4
 
248
        self._update_file(fname, text="v5 text\n")    # rev5
247
249
 
248
250
        # rev 2 should not have text 'v3'
249
251
        out, err = self.run_bzr(['grep', '-r', '2', 'v3'])
250
 
        self.assertFalse(out, self._str_contains(out, "file0.txt"))
 
252
        self.assertFalse(self._str_contains(out, "file0.txt"))
251
253
 
252
254
        # rev 3 should not have text 'v3'
253
255
        out, err = self.run_bzr(['grep', '-r', '3', 'v3'])
254
 
        self.assertTrue(out, self._str_contains(out, "file0.txt~3:v3.*"))
 
256
        self.assertTrue(self._str_contains(out, "file0.txt~3:v3"))
255
257
 
256
258
        # rev 3 should not have text 'v3' with line number
257
259
        out, err = self.run_bzr(['grep', '-r', '3', '-n', 'v3'])
258
 
        self.assertTrue(out, self._str_contains(out, "file0.txt~3:2:v3.*"))
 
260
        self.assertTrue(self._str_contains(out, "file0.txt~3:1:v3"))
 
261
 
 
262
    def test_revno_versioned_file_in_dir(self):
 
263
        """we create a file 'foobar0/dir0/file0.txt' and grep specific version of content"""
 
264
        wd = 'foobar0'
 
265
        self.make_branch_and_tree(wd)
 
266
        os.chdir(wd)
 
267
        self._mk_versioned_dir('dir0')                      # rev1
 
268
        self._mk_versioned_file('dir0/file0.txt')           # rev2
 
269
        self._update_file('dir0/file0.txt', "v3 text\n")    # rev3
 
270
        self._update_file('dir0/file0.txt', "v4 text\n")    # rev4
 
271
        self._update_file('dir0/file0.txt', "v5 text\n")    # rev5
 
272
 
 
273
        # v4 should not be present in revno 3
 
274
        out, err = self.run_bzr(['grep', '-r', 'last:3', '-R', 'v4'])
 
275
        self.assertFalse(self._str_contains(out, "^dir0/file0.txt"))
 
276
 
 
277
        # v4 should be present in revno 4
 
278
        out, err = self.run_bzr(['grep', '-r', 'last:2', '-R', 'v4'])
 
279
        self.assertTrue(self._str_contains(out, "^dir0/file0.txt~4:v4"))
 
280
 
259
281