~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_shelf_ui.py

  • Committer: Vincent Ladeuil
  • Date: 2009-12-16 10:54:55 UTC
  • mfrom: (4747.5.3 316357-SIGWINCH)
  • mto: This revision was merged to the branch mainline in revision 4902.
  • Revision ID: v.ladeuil+lp@free.fr-20091216105455-c1knt5e61o177gg2
Catch SIGWINCH on Unices

Show diffs side-by-side

added added

removed removed

Lines of Context:
76
76
        tree.lock_tree_write()
77
77
        self.addCleanup(tree.unlock)
78
78
        shelver = ExpectShelver(tree, tree.basis_tree())
 
79
        self.addCleanup(shelver.finalize)
79
80
        e = self.assertRaises(AssertionError, shelver.run)
80
81
        self.assertEqual('Unexpected prompt: Shelve? [yNfq?]', str(e))
81
82
 
84
85
        tree.lock_tree_write()
85
86
        self.addCleanup(tree.unlock)
86
87
        shelver = ExpectShelver(tree, tree.basis_tree())
 
88
        self.addCleanup(shelver.finalize)
87
89
        shelver.expect('foo', 'y')
88
90
        e = self.assertRaises(AssertionError, shelver.run)
89
91
        self.assertEqual('Wrong prompt: Shelve? [yNfq?]', str(e))
93
95
        tree.lock_tree_write()
94
96
        self.addCleanup(tree.unlock)
95
97
        shelver = ExpectShelver(tree, tree.basis_tree())
 
98
        self.addCleanup(shelver.finalize)
96
99
        shelver.expect('Shelve? [yNfq?]', 'n')
97
100
        shelver.expect('Shelve? [yNfq?]', 'n')
98
101
        # No final shelving prompt because no changes were selected
104
107
        tree.lock_tree_write()
105
108
        self.addCleanup(tree.unlock)
106
109
        shelver = ExpectShelver(tree, tree.basis_tree())
 
110
        self.addCleanup(shelver.finalize)
107
111
        shelver.expect('Shelve? [yNfq?]', 'y')
108
112
        shelver.expect('Shelve? [yNfq?]', 'y')
109
113
        shelver.expect('Shelve 2 change(s)? [yNfq?]', 'n')
115
119
        tree.lock_tree_write()
116
120
        self.addCleanup(tree.unlock)
117
121
        shelver = ExpectShelver(tree, tree.basis_tree())
 
122
        self.addCleanup(shelver.finalize)
118
123
        shelver.expect('Shelve? [yNfq?]', 'y')
119
124
        shelver.expect('Shelve? [yNfq?]', 'y')
120
125
        shelver.expect('Shelve 2 change(s)? [yNfq?]', 'y')
126
131
        tree.lock_tree_write()
127
132
        self.addCleanup(tree.unlock)
128
133
        shelver = ExpectShelver(tree, tree.basis_tree())
 
134
        self.addCleanup(shelver.finalize)
129
135
        shelver.expect('Shelve? [yNfq?]', 'y')
130
136
        shelver.expect('Shelve? [yNfq?]', 'n')
131
137
        shelver.expect('Shelve 1 change(s)? [yNfq?]', 'y')
138
144
        tree.lock_tree_write()
139
145
        self.addCleanup(tree.unlock)
140
146
        shelver = ExpectShelver(tree, tree.basis_tree())
 
147
        self.addCleanup(shelver.finalize)
141
148
        shelver.expect('Shelve binary changes? [yNfq?]', 'y')
142
149
        shelver.expect('Shelve 1 change(s)? [yNfq?]', 'y')
143
150
        shelver.run()
149
156
        tree.lock_tree_write()
150
157
        self.addCleanup(tree.unlock)
151
158
        shelver = ExpectShelver(tree, tree.basis_tree())
 
159
        self.addCleanup(shelver.finalize)
152
160
        shelver.expect('Shelve renaming "foo" => "bar"? [yNfq?]', 'y')
153
161
        shelver.expect('Shelve? [yNfq?]', 'y')
154
162
        shelver.expect('Shelve? [yNfq?]', 'y')
162
170
        tree.lock_tree_write()
163
171
        self.addCleanup(tree.unlock)
164
172
        shelver = ExpectShelver(tree, tree.basis_tree())
 
173
        self.addCleanup(shelver.finalize)
165
174
        shelver.expect('Shelve removing file "foo"? [yNfq?]', 'y')
166
175
        shelver.expect('Shelve 1 change(s)? [yNfq?]', 'y')
167
176
        shelver.run()
175
184
        tree.lock_tree_write()
176
185
        self.addCleanup(tree.unlock)
177
186
        shelver = ExpectShelver(tree, tree.basis_tree())
 
187
        self.addCleanup(shelver.finalize)
178
188
        shelver.expect('Shelve adding file "foo"? [yNfq?]', 'y')
179
189
        shelver.expect('Shelve 1 change(s)? [yNfq?]', 'y')
180
190
        shelver.run()
187
197
        tree.lock_tree_write()
188
198
        self.addCleanup(tree.unlock)
189
199
        shelver = ExpectShelver(tree, tree.basis_tree())
 
200
        self.addCleanup(shelver.finalize)
190
201
        shelver.expect('Shelve changing "foo" from file to directory? [yNfq?]',
191
202
                       'y')
192
203
        shelver.expect('Shelve 1 change(s)? [yNfq?]', 'y')
202
213
        tree.lock_tree_write()
203
214
        self.addCleanup(tree.unlock)
204
215
        shelver = ExpectShelver(tree, tree.basis_tree())
 
216
        self.addCleanup(shelver.finalize)
205
217
        shelver.expect('Shelve changing target of "baz" from "bar" to '
206
218
                '"vax"? [yNfq?]', 'y')
207
219
        shelver.expect('Shelve 1 change(s)? [yNfq?]', 'y')
213
225
        tree.lock_tree_write()
214
226
        self.addCleanup(tree.unlock)
215
227
        shelver = ExpectShelver(tree, tree.basis_tree())
 
228
        self.addCleanup(shelver.finalize)
216
229
        shelver.expect('Shelve? [yNfq?]', 'f')
217
230
        shelver.expect('Shelve 2 change(s)? [yNfq?]', 'y')
218
231
        shelver.run()
223
236
        tree.lock_tree_write()
224
237
        self.addCleanup(tree.unlock)
225
238
        shelver = ExpectShelver(tree, tree.basis_tree())
 
239
        self.addCleanup(shelver.finalize)
226
240
        shelver.expect('Shelve? [yNfq?]', 'q')
227
241
        self.assertRaises(errors.UserAbort, shelver.run)
228
242
        self.assertFileEqual(LINES_ZY, 'tree/foo')
234
248
        try:
235
249
            shelver.run()
236
250
        finally:
237
 
            shelver.work_tree.unlock()
 
251
            shelver.finalize()
238
252
        self.assertFileEqual(LINES_AJ, 'tree/foo')
239
253
 
240
254
    def test_shelve_filename(self):
244
258
        tree.lock_tree_write()
245
259
        self.addCleanup(tree.unlock)
246
260
        shelver = ExpectShelver(tree, tree.basis_tree(), file_list=['bar'])
 
261
        self.addCleanup(shelver.finalize)
247
262
        shelver.expect('Shelve adding file "bar"? [yNfq?]', 'y')
248
263
        shelver.expect('Shelve 1 change(s)? [yNfq?]', 'y')
249
264
        shelver.run()
253
268
        tree.lock_tree_write()
254
269
        self.addCleanup(tree.unlock)
255
270
        shelver = ExpectShelver(tree, tree.basis_tree())
 
271
        self.addCleanup(shelver.finalize)
256
272
        shelver.expect('Shelve? [yNfq?]', '?')
257
273
        shelver.expect('Shelve? [(y)es, (N)o, (f)inish, or (q)uit]', 'f')
258
274
        shelver.expect('Shelve 2 change(s)? [yNfq?]', 'y')
259
275
        shelver.run()
260
276
 
261
 
    def test_shelve_distroy(self):
 
277
    def test_shelve_destroy(self):
262
278
        tree = self.create_shelvable_tree()
263
279
        shelver = shelf_ui.Shelver.from_args(sys.stdout, all=True,
264
280
                                             directory='tree', destroy=True)
265
 
        try:
266
 
            shelver.run()
267
 
        finally:
268
 
            shelver.work_tree.unlock()
 
281
        self.addCleanup(shelver.finalize)
 
282
        shelver.run()
269
283
        self.assertIs(None, tree.get_shelf_manager().last_shelf())
270
284
        self.assertFileEqual(LINES_AJ, 'tree/foo')
271
285
 
276
290
            target = tree.branch.repository.revision_tree(target_revision_id)
277
291
            shelver = shelf_ui.Shelver(tree, target, auto=True,
278
292
                                       auto_apply=True)
279
 
            shelver.run()
 
293
            try:
 
294
                shelver.run()
 
295
            finally:
 
296
                shelver.finalize()
280
297
        finally:
281
298
            tree.unlock()
282
299
 
316
333
        self.addCleanup(tree.unlock)
317
334
        shelver = ExpectShelver(tree, tree.basis_tree(),
318
335
                                reporter=shelf_ui.ApplyReporter())
 
336
        self.addCleanup(shelver.finalize)
319
337
        shelver.expect('Apply change? [yNfq?]', 'n')
320
338
        shelver.expect('Apply change? [yNfq?]', 'n')
321
339
        # No final shelving prompt because no changes were selected
328
346
        self.addCleanup(tree.unlock)
329
347
        shelver = ExpectShelver(tree, tree.basis_tree(),
330
348
                                reporter=shelf_ui.ApplyReporter())
 
349
        self.addCleanup(shelver.finalize)
331
350
        shelver.expect('Apply change? [yNfq?]', 'y')
332
351
        shelver.expect('Apply change? [yNfq?]', 'y')
333
352
        shelver.expect('Apply 2 change(s)? [yNfq?]', 'n')
340
359
        self.addCleanup(tree.unlock)
341
360
        shelver = ExpectShelver(tree, tree.basis_tree(),
342
361
                                reporter=shelf_ui.ApplyReporter())
 
362
        self.addCleanup(shelver.finalize)
343
363
        shelver.expect('Apply change? [yNfq?]', 'y')
344
364
        shelver.expect('Apply change? [yNfq?]', 'y')
345
365
        shelver.expect('Apply 2 change(s)? [yNfq?]', 'y')
353
373
        self.addCleanup(tree.unlock)
354
374
        shelver = ExpectShelver(tree, tree.basis_tree(),
355
375
                                reporter=shelf_ui.ApplyReporter())
 
376
        self.addCleanup(shelver.finalize)
356
377
        shelver.expect('Apply binary changes? [yNfq?]', 'y')
357
378
        shelver.expect('Apply 1 change(s)? [yNfq?]', 'y')
358
379
        shelver.run()
365
386
        self.addCleanup(tree.unlock)
366
387
        shelver = ExpectShelver(tree, tree.basis_tree(),
367
388
                                reporter=shelf_ui.ApplyReporter())
 
389
        self.addCleanup(shelver.finalize)
368
390
        shelver.expect('Rename "bar" => "foo"? [yNfq?]', 'y')
369
391
        shelver.expect('Apply change? [yNfq?]', 'y')
370
392
        shelver.expect('Apply change? [yNfq?]', 'y')
379
401
        self.addCleanup(tree.unlock)
380
402
        shelver = ExpectShelver(tree, tree.basis_tree(),
381
403
                                reporter=shelf_ui.ApplyReporter())
 
404
        self.addCleanup(shelver.finalize)
382
405
        shelver.expect('Add file "foo"? [yNfq?]', 'y')
383
406
        shelver.expect('Apply 1 change(s)? [yNfq?]', 'y')
384
407
        shelver.run()
393
416
        self.addCleanup(tree.unlock)
394
417
        shelver = ExpectShelver(tree, tree.basis_tree(),
395
418
                                reporter=shelf_ui.ApplyReporter())
 
419
        self.addCleanup(shelver.finalize)
396
420
        shelver.expect('Delete file "foo"? [yNfq?]', 'y')
397
421
        shelver.expect('Apply 1 change(s)? [yNfq?]', 'y')
398
422
        shelver.run()
406
430
        self.addCleanup(tree.unlock)
407
431
        shelver = ExpectShelver(tree, tree.basis_tree(),
408
432
                               reporter=shelf_ui.ApplyReporter())
 
433
        self.addCleanup(shelver.finalize)
409
434
        shelver.expect('Change "foo" from directory to a file? [yNfq?]', 'y')
410
435
        shelver.expect('Apply 1 change(s)? [yNfq?]', 'y')
411
436
 
421
446
        self.addCleanup(tree.unlock)
422
447
        shelver = ExpectShelver(tree, tree.basis_tree(),
423
448
                                reporter=shelf_ui.ApplyReporter())
 
449
        self.addCleanup(shelver.finalize)
424
450
        shelver.expect('Change target of "baz" from "vax" to "bar"? [yNfq?]',
425
451
                       'y')
426
452
        shelver.expect('Apply 1 change(s)? [yNfq?]', 'y')
438
464
            tree.add('foo', 'foo-id')
439
465
            tree.commit('added foo')
440
466
            self.build_tree_contents([('tree/foo', LINES_ZY)])
441
 
            shelf_ui.Shelver(tree, tree.basis_tree(), auto_apply=True,
442
 
                             auto=True).run()
 
467
            shelver = shelf_ui.Shelver(tree, tree.basis_tree(),
 
468
                                       auto_apply=True, auto=True)
 
469
            try:
 
470
                shelver.run()
 
471
            finally:
 
472
                shelver.finalize()
443
473
        finally:
444
474
            tree.unlock()
445
475
        return tree