/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 bzrlib/tests/test_shelf_ui.py

  • Committer: Canonical.com Patch Queue Manager
  • Date: 2009-12-21 06:03:07 UTC
  • mfrom: (4665.7.3 serve-init)
  • Revision ID: pqm@pqm.ubuntu.com-20091221060307-uvja3vdy1o6dzzy0
(mbp) example debian init script

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
    revision,
26
26
    tests,
27
27
)
 
28
from bzrlib.tests import script
28
29
 
29
30
 
30
31
class ExpectShelver(shelf_ui.Shelver):
76
77
        tree.lock_tree_write()
77
78
        self.addCleanup(tree.unlock)
78
79
        shelver = ExpectShelver(tree, tree.basis_tree())
 
80
        self.addCleanup(shelver.finalize)
79
81
        e = self.assertRaises(AssertionError, shelver.run)
80
82
        self.assertEqual('Unexpected prompt: Shelve? [yNfq?]', str(e))
81
83
 
84
86
        tree.lock_tree_write()
85
87
        self.addCleanup(tree.unlock)
86
88
        shelver = ExpectShelver(tree, tree.basis_tree())
 
89
        self.addCleanup(shelver.finalize)
87
90
        shelver.expect('foo', 'y')
88
91
        e = self.assertRaises(AssertionError, shelver.run)
89
92
        self.assertEqual('Wrong prompt: Shelve? [yNfq?]', str(e))
93
96
        tree.lock_tree_write()
94
97
        self.addCleanup(tree.unlock)
95
98
        shelver = ExpectShelver(tree, tree.basis_tree())
 
99
        self.addCleanup(shelver.finalize)
96
100
        shelver.expect('Shelve? [yNfq?]', 'n')
97
101
        shelver.expect('Shelve? [yNfq?]', 'n')
98
102
        # No final shelving prompt because no changes were selected
104
108
        tree.lock_tree_write()
105
109
        self.addCleanup(tree.unlock)
106
110
        shelver = ExpectShelver(tree, tree.basis_tree())
 
111
        self.addCleanup(shelver.finalize)
107
112
        shelver.expect('Shelve? [yNfq?]', 'y')
108
113
        shelver.expect('Shelve? [yNfq?]', 'y')
109
114
        shelver.expect('Shelve 2 change(s)? [yNfq?]', 'n')
115
120
        tree.lock_tree_write()
116
121
        self.addCleanup(tree.unlock)
117
122
        shelver = ExpectShelver(tree, tree.basis_tree())
 
123
        self.addCleanup(shelver.finalize)
118
124
        shelver.expect('Shelve? [yNfq?]', 'y')
119
125
        shelver.expect('Shelve? [yNfq?]', 'y')
120
126
        shelver.expect('Shelve 2 change(s)? [yNfq?]', 'y')
126
132
        tree.lock_tree_write()
127
133
        self.addCleanup(tree.unlock)
128
134
        shelver = ExpectShelver(tree, tree.basis_tree())
 
135
        self.addCleanup(shelver.finalize)
129
136
        shelver.expect('Shelve? [yNfq?]', 'y')
130
137
        shelver.expect('Shelve? [yNfq?]', 'n')
131
138
        shelver.expect('Shelve 1 change(s)? [yNfq?]', 'y')
138
145
        tree.lock_tree_write()
139
146
        self.addCleanup(tree.unlock)
140
147
        shelver = ExpectShelver(tree, tree.basis_tree())
 
148
        self.addCleanup(shelver.finalize)
141
149
        shelver.expect('Shelve binary changes? [yNfq?]', 'y')
142
150
        shelver.expect('Shelve 1 change(s)? [yNfq?]', 'y')
143
151
        shelver.run()
149
157
        tree.lock_tree_write()
150
158
        self.addCleanup(tree.unlock)
151
159
        shelver = ExpectShelver(tree, tree.basis_tree())
 
160
        self.addCleanup(shelver.finalize)
152
161
        shelver.expect('Shelve renaming "foo" => "bar"? [yNfq?]', 'y')
153
162
        shelver.expect('Shelve? [yNfq?]', 'y')
154
163
        shelver.expect('Shelve? [yNfq?]', 'y')
162
171
        tree.lock_tree_write()
163
172
        self.addCleanup(tree.unlock)
164
173
        shelver = ExpectShelver(tree, tree.basis_tree())
 
174
        self.addCleanup(shelver.finalize)
165
175
        shelver.expect('Shelve removing file "foo"? [yNfq?]', 'y')
166
176
        shelver.expect('Shelve 1 change(s)? [yNfq?]', 'y')
167
177
        shelver.run()
175
185
        tree.lock_tree_write()
176
186
        self.addCleanup(tree.unlock)
177
187
        shelver = ExpectShelver(tree, tree.basis_tree())
 
188
        self.addCleanup(shelver.finalize)
178
189
        shelver.expect('Shelve adding file "foo"? [yNfq?]', 'y')
179
190
        shelver.expect('Shelve 1 change(s)? [yNfq?]', 'y')
180
191
        shelver.run()
187
198
        tree.lock_tree_write()
188
199
        self.addCleanup(tree.unlock)
189
200
        shelver = ExpectShelver(tree, tree.basis_tree())
 
201
        self.addCleanup(shelver.finalize)
190
202
        shelver.expect('Shelve changing "foo" from file to directory? [yNfq?]',
191
203
                       'y')
192
204
        shelver.expect('Shelve 1 change(s)? [yNfq?]', 'y')
202
214
        tree.lock_tree_write()
203
215
        self.addCleanup(tree.unlock)
204
216
        shelver = ExpectShelver(tree, tree.basis_tree())
 
217
        self.addCleanup(shelver.finalize)
205
218
        shelver.expect('Shelve changing target of "baz" from "bar" to '
206
219
                '"vax"? [yNfq?]', 'y')
207
220
        shelver.expect('Shelve 1 change(s)? [yNfq?]', 'y')
213
226
        tree.lock_tree_write()
214
227
        self.addCleanup(tree.unlock)
215
228
        shelver = ExpectShelver(tree, tree.basis_tree())
 
229
        self.addCleanup(shelver.finalize)
216
230
        shelver.expect('Shelve? [yNfq?]', 'f')
217
231
        shelver.expect('Shelve 2 change(s)? [yNfq?]', 'y')
218
232
        shelver.run()
223
237
        tree.lock_tree_write()
224
238
        self.addCleanup(tree.unlock)
225
239
        shelver = ExpectShelver(tree, tree.basis_tree())
 
240
        self.addCleanup(shelver.finalize)
226
241
        shelver.expect('Shelve? [yNfq?]', 'q')
227
242
        self.assertRaises(errors.UserAbort, shelver.run)
228
243
        self.assertFileEqual(LINES_ZY, 'tree/foo')
234
249
        try:
235
250
            shelver.run()
236
251
        finally:
237
 
            shelver.work_tree.unlock()
 
252
            shelver.finalize()
238
253
        self.assertFileEqual(LINES_AJ, 'tree/foo')
239
254
 
240
255
    def test_shelve_filename(self):
244
259
        tree.lock_tree_write()
245
260
        self.addCleanup(tree.unlock)
246
261
        shelver = ExpectShelver(tree, tree.basis_tree(), file_list=['bar'])
 
262
        self.addCleanup(shelver.finalize)
247
263
        shelver.expect('Shelve adding file "bar"? [yNfq?]', 'y')
248
264
        shelver.expect('Shelve 1 change(s)? [yNfq?]', 'y')
249
265
        shelver.run()
253
269
        tree.lock_tree_write()
254
270
        self.addCleanup(tree.unlock)
255
271
        shelver = ExpectShelver(tree, tree.basis_tree())
 
272
        self.addCleanup(shelver.finalize)
256
273
        shelver.expect('Shelve? [yNfq?]', '?')
257
274
        shelver.expect('Shelve? [(y)es, (N)o, (f)inish, or (q)uit]', 'f')
258
275
        shelver.expect('Shelve 2 change(s)? [yNfq?]', 'y')
259
276
        shelver.run()
260
277
 
261
 
    def test_shelve_distroy(self):
 
278
    def test_shelve_destroy(self):
262
279
        tree = self.create_shelvable_tree()
263
280
        shelver = shelf_ui.Shelver.from_args(sys.stdout, all=True,
264
281
                                             directory='tree', destroy=True)
265
 
        try:
266
 
            shelver.run()
267
 
        finally:
268
 
            shelver.work_tree.unlock()
 
282
        self.addCleanup(shelver.finalize)
 
283
        shelver.run()
269
284
        self.assertIs(None, tree.get_shelf_manager().last_shelf())
270
285
        self.assertFileEqual(LINES_AJ, 'tree/foo')
271
286
 
276
291
            target = tree.branch.repository.revision_tree(target_revision_id)
277
292
            shelver = shelf_ui.Shelver(tree, target, auto=True,
278
293
                                       auto_apply=True)
279
 
            shelver.run()
 
294
            try:
 
295
                shelver.run()
 
296
            finally:
 
297
                shelver.finalize()
280
298
        finally:
281
299
            tree.unlock()
282
300
 
316
334
        self.addCleanup(tree.unlock)
317
335
        shelver = ExpectShelver(tree, tree.basis_tree(),
318
336
                                reporter=shelf_ui.ApplyReporter())
 
337
        self.addCleanup(shelver.finalize)
319
338
        shelver.expect('Apply change? [yNfq?]', 'n')
320
339
        shelver.expect('Apply change? [yNfq?]', 'n')
321
340
        # No final shelving prompt because no changes were selected
328
347
        self.addCleanup(tree.unlock)
329
348
        shelver = ExpectShelver(tree, tree.basis_tree(),
330
349
                                reporter=shelf_ui.ApplyReporter())
 
350
        self.addCleanup(shelver.finalize)
331
351
        shelver.expect('Apply change? [yNfq?]', 'y')
332
352
        shelver.expect('Apply change? [yNfq?]', 'y')
333
353
        shelver.expect('Apply 2 change(s)? [yNfq?]', 'n')
340
360
        self.addCleanup(tree.unlock)
341
361
        shelver = ExpectShelver(tree, tree.basis_tree(),
342
362
                                reporter=shelf_ui.ApplyReporter())
 
363
        self.addCleanup(shelver.finalize)
343
364
        shelver.expect('Apply change? [yNfq?]', 'y')
344
365
        shelver.expect('Apply change? [yNfq?]', 'y')
345
366
        shelver.expect('Apply 2 change(s)? [yNfq?]', 'y')
353
374
        self.addCleanup(tree.unlock)
354
375
        shelver = ExpectShelver(tree, tree.basis_tree(),
355
376
                                reporter=shelf_ui.ApplyReporter())
 
377
        self.addCleanup(shelver.finalize)
356
378
        shelver.expect('Apply binary changes? [yNfq?]', 'y')
357
379
        shelver.expect('Apply 1 change(s)? [yNfq?]', 'y')
358
380
        shelver.run()
365
387
        self.addCleanup(tree.unlock)
366
388
        shelver = ExpectShelver(tree, tree.basis_tree(),
367
389
                                reporter=shelf_ui.ApplyReporter())
 
390
        self.addCleanup(shelver.finalize)
368
391
        shelver.expect('Rename "bar" => "foo"? [yNfq?]', 'y')
369
392
        shelver.expect('Apply change? [yNfq?]', 'y')
370
393
        shelver.expect('Apply change? [yNfq?]', 'y')
379
402
        self.addCleanup(tree.unlock)
380
403
        shelver = ExpectShelver(tree, tree.basis_tree(),
381
404
                                reporter=shelf_ui.ApplyReporter())
 
405
        self.addCleanup(shelver.finalize)
382
406
        shelver.expect('Add file "foo"? [yNfq?]', 'y')
383
407
        shelver.expect('Apply 1 change(s)? [yNfq?]', 'y')
384
408
        shelver.run()
393
417
        self.addCleanup(tree.unlock)
394
418
        shelver = ExpectShelver(tree, tree.basis_tree(),
395
419
                                reporter=shelf_ui.ApplyReporter())
 
420
        self.addCleanup(shelver.finalize)
396
421
        shelver.expect('Delete file "foo"? [yNfq?]', 'y')
397
422
        shelver.expect('Apply 1 change(s)? [yNfq?]', 'y')
398
423
        shelver.run()
406
431
        self.addCleanup(tree.unlock)
407
432
        shelver = ExpectShelver(tree, tree.basis_tree(),
408
433
                               reporter=shelf_ui.ApplyReporter())
 
434
        self.addCleanup(shelver.finalize)
409
435
        shelver.expect('Change "foo" from directory to a file? [yNfq?]', 'y')
410
436
        shelver.expect('Apply 1 change(s)? [yNfq?]', 'y')
411
437
 
421
447
        self.addCleanup(tree.unlock)
422
448
        shelver = ExpectShelver(tree, tree.basis_tree(),
423
449
                                reporter=shelf_ui.ApplyReporter())
 
450
        self.addCleanup(shelver.finalize)
424
451
        shelver.expect('Change target of "baz" from "vax" to "bar"? [yNfq?]',
425
452
                       'y')
426
453
        shelver.expect('Apply 1 change(s)? [yNfq?]', 'y')
438
465
            tree.add('foo', 'foo-id')
439
466
            tree.commit('added foo')
440
467
            self.build_tree_contents([('tree/foo', LINES_ZY)])
441
 
            shelf_ui.Shelver(tree, tree.basis_tree(), auto_apply=True,
442
 
                             auto=True).run()
 
468
            shelver = shelf_ui.Shelver(tree, tree.basis_tree(),
 
469
                                       auto_apply=True, auto=True)
 
470
            try:
 
471
                shelver.run()
 
472
            finally:
 
473
                shelver.finalize()
443
474
        finally:
444
475
            tree.unlock()
445
476
        return tree
500
531
        self.assertRaises(errors.InvalidShelfId,
501
532
            shelf_ui.Unshelver.from_args, directory='tree',
502
533
            action='delete-only', shelf_id='foo')
 
534
 
 
535
 
 
536
class TestUnshelveScripts(TestUnshelver, 
 
537
                          script.TestCaseWithTransportAndScript): 
 
538
 
 
539
    def test_unshelve_messages_keep(self):
 
540
        self.create_tree_with_shelf()
 
541
        self.run_script("""
 
542
$ cd tree
 
543
$ bzr unshelve --keep
 
544
2>Using changes with id "1".
 
545
2> M  foo
 
546
2>All changes applied successfully.
 
547
""")
 
548
 
 
549
    def test_unshelve_messages_delete(self):
 
550
        self.create_tree_with_shelf()
 
551
        self.run_script("""
 
552
$ cd tree
 
553
$ bzr unshelve --delete-only
 
554
2>Deleted changes with id "1".
 
555
""")
 
556
 
 
557
    def test_unshelve_messages_apply(self):
 
558
        self.create_tree_with_shelf()
 
559
        self.run_script("""
 
560
$ cd tree
 
561
$ bzr unshelve --apply
 
562
2>Using changes with id "1".
 
563
2> M  foo
 
564
2>All changes applied successfully.
 
565
2>Deleted changes with id "1".
 
566
""")
 
567
 
 
568
    def test_unshelve_messages_dry_run(self):
 
569
        self.create_tree_with_shelf()
 
570
        self.run_script("""
 
571
$ cd tree
 
572
$ bzr unshelve --dry-run
 
573
2>Using changes with id "1".
 
574
2> M  foo
 
575
""")