/b-gtk/fix-viz

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/b-gtk/fix-viz

« back to all changes in this revision

Viewing changes to tests/test_commit.py

  • Committer: Curtis Hovey
  • Date: 2012-02-05 05:14:11 UTC
  • mto: This revision was merged to the branch mainline in revision 775.
  • Revision ID: sinzui.is@verizon.net-20120205051411-y9ra08wae1wsfv52
Remove unneeded gtksourceview1 support.

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
"""Test the Commit functionality."""
18
18
 
19
19
import os
 
20
import subprocess
 
21
from tempfile import NamedTemporaryFile
20
22
 
21
 
import gtk
 
23
from gi.repository import Gtk
22
24
 
23
25
from bzrlib import (
24
26
    branch,
25
 
    revision,
26
27
    tests,
27
28
    uncommit,
28
29
    )
29
30
try:
30
 
    from bzrlib import bencode
31
 
except ImportError:
32
 
    from bzrlib.util import bencode
 
31
    from bzrlib.tests.features import UnicodeFilenameFeature
 
32
except ImportError: # bzr < 2.5
 
33
    from bzrlib.tests import UnicodeFilenameFeature
 
34
from bzrlib import bencode
33
35
 
34
 
from bzrlib.plugins.gtk import commit
 
36
from bzrlib.plugins.gtk import (
 
37
    commit,
 
38
    commitmsgs,
 
39
    )
 
40
from bzrlib.plugins.gtk.commitmsgs import SavedCommitMessagesManager
 
41
from bzrlib.plugins.gtk.tests import MockMethod
35
42
 
36
43
 
37
44
# TODO: All we need is basic ancestry code to test this, we shouldn't need a
43
50
        tree = self.make_branch_and_tree('.')
44
51
        tree.commit('one')
45
52
 
 
53
        self.addCleanup(tree.lock_read().unlock)
46
54
        self.assertIs(None, commit.pending_revisions(tree))
47
55
 
48
56
    def test_pending_revisions_simple(self):
53
61
        tree.merge_from_branch(tree2.branch)
54
62
        self.assertEqual([rev_id1, rev_id2], tree.get_parent_ids())
55
63
 
 
64
        self.addCleanup(tree.lock_read().unlock)
56
65
        pending_revisions = commit.pending_revisions(tree)
57
66
        # One primary merge
58
67
        self.assertEqual(1, len(pending_revisions))
71
80
        tree.merge_from_branch(tree2.branch)
72
81
        self.assertEqual([rev_id1, rev_id4], tree.get_parent_ids())
73
82
 
 
83
        self.addCleanup(tree.lock_read().unlock)
74
84
        pending_revisions = commit.pending_revisions(tree)
75
85
        # One primary merge
76
86
        self.assertEqual(1, len(pending_revisions))
94
104
        tree.merge_from_branch(tree3.branch, force=True)
95
105
        self.assertEqual([rev_id1, rev_id3, rev_id5], tree.get_parent_ids())
96
106
 
 
107
        self.addCleanup(tree.lock_read().unlock)
97
108
        pending_revisions = commit.pending_revisions(tree)
98
109
        # Two primary merges
99
110
        self.assertEqual(2, len(pending_revisions))
137
148
 
138
149
class TestCommitDialogSimple(tests.TestCaseWithTransport):
139
150
 
 
151
    def test_init(self):
 
152
        MockMethod.bind(self, CommitDialogNoWidgets, 'setup_params')
 
153
        MockMethod.bind(self, CommitDialogNoWidgets, 'construct')
 
154
        MockMethod.bind(self, CommitDialogNoWidgets, 'fill_in_data')
 
155
 
 
156
        tree = self.make_branch_and_tree('tree')
 
157
        rev_id = tree.commit('first')
 
158
        dlg = CommitDialogNoWidgets(tree)
 
159
        self.assertIs(tree, dlg._wt)
 
160
        self.assertIs(None, dlg._selected)
 
161
        self.assertTrue(dlg._enable_per_file_commits)
 
162
        self.assertTrue(dlg._commit_all_changes)
 
163
        self.assertIs(None, dlg.committed_revision_id)
 
164
        self.assertIs(None, dlg._last_selected_file)
 
165
        self.assertIsInstance(
 
166
            dlg._saved_commit_messages_manager, SavedCommitMessagesManager)
 
167
        self.assertTrue(CommitDialogNoWidgets.setup_params.called)
 
168
        self.assertTrue(CommitDialogNoWidgets.construct.called)
 
169
        self.assertTrue(CommitDialogNoWidgets.fill_in_data.called)
 
170
 
140
171
    def test_setup_parameters_no_pending(self):
141
172
        tree = self.make_branch_and_tree('tree')
142
173
        rev_id = tree.commit('first')
185
216
        self.assertEqual([], delta.removed)
186
217
        self.assertEqual([(u'a', 'a-id', 'file')], delta.added)
187
218
 
 
219
    def test_on_treeview_files_cursor_changed_no_selection(self):
 
220
        MockMethod.bind(self, CommitDialogNoWidgets, '_update_per_file_info')
 
221
        tree = self.make_branch_and_tree('tree')
 
222
        rev_id = tree.commit('first')
 
223
        dlg = CommitDialogNoWidgets(tree)
 
224
        treeview = Gtk.TreeView()
 
225
        dlg._on_treeview_files_cursor_changed(treeview)
 
226
        self.assertFalse(CommitDialogNoWidgets._update_per_file_info.called)
 
227
 
 
228
    def test_on_treeview_files_cursor_changed_with_destroyed_treeview(self):
 
229
        MockMethod.bind(self, CommitDialogNoWidgets, '_update_per_file_info')
 
230
        tree = self.make_branch_and_tree('tree')
 
231
        rev_id = tree.commit('first')
 
232
        dlg = CommitDialogNoWidgets(tree)
 
233
        treeview = Gtk.TreeView()
 
234
        treeview.destroy()
 
235
        dlg._on_treeview_files_cursor_changed(treeview)
 
236
        self.assertFalse(CommitDialogNoWidgets._update_per_file_info.called)
 
237
 
188
238
 
189
239
class TestCommitDialog(tests.TestCaseWithTransport):
190
240
 
212
262
 
213
263
        commit_col = dlg._treeview_files.get_column(0)
214
264
        self.assertEqual('Commit', commit_col.get_title())
215
 
        renderer = commit_col.get_cell_renderers()[0]
 
265
        renderer = commit_col.get_cells()[0]
216
266
        self.assertTrue(renderer.get_property('activatable'))
217
267
 
218
268
        self.assertEqual('Commit all changes',
237
287
 
238
288
        commit_col = dlg._treeview_files.get_column(0)
239
289
        self.assertEqual('Commit*', commit_col.get_title())
240
 
        renderer = commit_col.get_cell_renderers()[0]
 
290
        renderer = commit_col.get_cells()[0]
241
291
        self.assertFalse(renderer.get_property('activatable'))
242
292
 
243
293
        values = [(r[0], r[1], r[2], r[3]) for r in dlg._pending_store]
289
339
 
290
340
        dlg = commit.CommitDialog(tree)
291
341
        values = [(r[0], r[1], r[2], r[3], r[4]) for r in dlg._files_store]
292
 
        self.assertEqual([(None, None, True, 'All Files', ''),
 
342
        self.assertEqual([("", "", True, 'All Files', ''),
293
343
                          ('a-id', 'a', True, 'a', 'added'),
294
344
                          ('b-id', 'b', True, 'b/', 'added'),
295
345
                          ('c-id', 'b/c', True, 'b/c', 'added'),
306
356
 
307
357
        dlg = commit.CommitDialog(tree)
308
358
        values = [(r[0], r[1], r[2], r[3], r[4]) for r in dlg._files_store]
309
 
        self.assertEqual([(None, None, True, 'All Files', ''),
 
359
        self.assertEqual([("", "", True, 'All Files', ''),
310
360
                          ('b-id', 'd', True, 'b/ => d/', 'renamed'),
311
361
                          ('a-id', 'd/a', True, 'a => d/a', 'renamed'),
312
362
                         ], values)
321
371
 
322
372
        dlg = commit.CommitDialog(tree)
323
373
        values = [(r[0], r[1], r[2], r[3], r[4]) for r in dlg._files_store]
324
 
        self.assertEqual([(None, None, True, 'All Files', ''),
 
374
        self.assertEqual([("", "", True, 'All Files', ''),
325
375
                          ('a-id', 'a', True, 'a', 'modified'),
326
376
                         ], values)
327
377
 
341
391
 
342
392
        dlg = commit.CommitDialog(tree)
343
393
        values = [(r[0], r[1], r[2], r[3], r[4]) for r in dlg._files_store]
344
 
        self.assertEqual([(None, None, True, 'All Files', ''),
 
394
        self.assertEqual([("", "", True, 'All Files', ''),
345
395
                          ('b-id', 'd', True, 'b/ => d/', 'renamed'),
346
396
                          ('a-id', 'd/a', True, 'a => d/a', 'renamed and modified'),
347
397
                          ('c-id', 'd/c', True, 'd/c', 'modified'),
364
414
 
365
415
        dlg = commit.CommitDialog(tree)
366
416
        values = [(r[0], r[1], r[2], r[3], r[4]) for r in dlg._files_store]
367
 
        self.assertEqual([(None, None, True, 'All Files', ''),
 
417
        self.assertEqual([("", "", True, 'All Files', ''),
368
418
                          ('a-id', 'a', True, 'a => a/', 'kind changed'),
369
419
                          # ('b-id', 'c', True, 'b => c/', 'renamed and modified'),
370
420
                         ], values)
380
430
 
381
431
        dlg = commit.CommitDialog(tree)
382
432
        values = [(r[0], r[1], r[2], r[3], r[4]) for r in dlg._files_store]
383
 
        self.assertEqual([(None, None, True, 'All Files', ''),
 
433
        self.assertEqual([("", "", True, 'All Files', ''),
384
434
                          ('a-id', 'a', True, 'a', 'removed'),
385
435
                          ('b-id', 'b', True, 'b/', 'removed'),
386
436
                         ], values)
387
437
        # All Files should be selected
388
 
        self.assertEqual(((0,), None), dlg._treeview_files.get_cursor())
 
438
        self.assertEqual(
 
439
            (Gtk.TreePath(path=0), None), dlg._treeview_files.get_cursor())
389
440
 
390
441
    def test_filelist_with_selected(self):
391
442
        tree = self.make_branch_and_tree('tree')
394
445
 
395
446
        dlg = commit.CommitDialog(tree, selected='a')
396
447
        values = [(r[0], r[1], r[2], r[3], r[4]) for r in dlg._files_store]
397
 
        self.assertEqual([(None, None, False, 'All Files', ''),
 
448
        self.assertEqual([("", "", False, 'All Files', ''),
398
449
                          ('a-id', 'a', True, 'a', 'added'),
399
450
                          ('b-id', 'b', False, 'b/', 'added'),
400
451
                         ], values)
401
452
        # This file should also be selected in the file list, rather than the
402
453
        # 'All Files' selection
403
 
        self.assertEqual(((1,), None), dlg._treeview_files.get_cursor())
 
454
        self.assertEqual(
 
455
            (Gtk.TreePath(path=1), None), dlg._treeview_files.get_cursor())
404
456
 
405
457
    def test_diff_view(self):
406
458
        tree = self.make_branch_and_tree('tree')
414
466
        dlg = commit.CommitDialog(tree)
415
467
        diff_buffer = dlg._diff_view.buffer
416
468
        text = diff_buffer.get_text(diff_buffer.get_start_iter(),
417
 
                                    diff_buffer.get_end_iter()).splitlines(True)
 
469
                                    diff_buffer.get_end_iter(),
 
470
                                    True).splitlines(True)
418
471
 
419
472
        self.assertEqual("=== modified file 'a'\n", text[0])
420
473
        self.assertContainsRe(text[1],
465
518
        self.assertFalse(dlg._file_message_expander.get_expanded())
466
519
        self.assertFalse(dlg._file_message_expander.get_property('sensitive'))
467
520
 
468
 
        dlg._treeview_files.set_cursor((1,))
 
521
        dlg._treeview_files.set_cursor(
 
522
            Gtk.TreePath(path=1), None, False)
469
523
        self.assertEqual('Diff for a', dlg._diff_label.get_text())
470
524
        text = diff_buffer.get_text(diff_buffer.get_start_iter(),
471
 
                                    diff_buffer.get_end_iter()).splitlines(True)
 
525
                                    diff_buffer.get_end_iter(),
 
526
                                    True).splitlines(True)
472
527
        self.assertEqual("=== added file 'a'\n", text[0])
473
528
        self.assertContainsRe(text[1],
474
529
            r"--- a\t\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d [+-]\d\d\d\d")
482
537
        self.assertTrue(dlg._file_message_expander.get_expanded())
483
538
        self.assertTrue(dlg._file_message_expander.get_property('sensitive'))
484
539
 
485
 
        dlg._treeview_files.set_cursor((2,))
 
540
        dlg._treeview_files.set_cursor(
 
541
            Gtk.TreePath(path=2), None, False)
486
542
        self.assertEqual('Diff for b', dlg._diff_label.get_text())
487
543
        text = diff_buffer.get_text(diff_buffer.get_start_iter(),
488
 
                                    diff_buffer.get_end_iter()).splitlines(True)
 
544
                                    diff_buffer.get_end_iter(),
 
545
                                    True).splitlines(True)
489
546
        self.assertEqual("=== added file 'b'\n", text[0])
490
547
        self.assertContainsRe(text[1],
491
548
            r"--- b\t\d\d\d\d-\d\d-\d\d \d\d:\d\d:\d\d [+-]\d\d\d\d")
499
556
        self.assertTrue(dlg._file_message_expander.get_expanded())
500
557
        self.assertTrue(dlg._file_message_expander.get_property('sensitive'))
501
558
 
502
 
        dlg._treeview_files.set_cursor((0,))
 
559
        dlg._treeview_files.set_cursor(
 
560
            Gtk.TreePath(path=0), None, False)
503
561
        self.assertEqual('Diff for All Files', dlg._diff_label.get_text())
504
562
        self.assertEqual('File commit message',
505
563
                         dlg._file_message_expander.get_label())
515
573
 
516
574
        def get_file_text():
517
575
            buf = dlg._file_message_text_view.get_buffer()
518
 
            return buf.get_text(buf.get_start_iter(), buf.get_end_iter())
 
576
            return buf.get_text(
 
577
                buf.get_start_iter(), buf.get_end_iter(), True)
519
578
 
520
579
        def get_saved_text(path):
521
580
            """Get the saved text for a given record."""
528
587
        self.assertFalse(dlg._file_message_expander.get_property('sensitive'))
529
588
        self.assertEqual('', get_file_text())
530
589
 
531
 
        dlg._treeview_files.set_cursor((1,))
 
590
        dlg._treeview_files.set_cursor(
 
591
            Gtk.TreePath(path=1), None, False)
532
592
        self.assertEqual('Commit message for a',
533
593
                         dlg._file_message_expander.get_label())
534
594
        self.assertTrue(dlg._file_message_expander.get_expanded())
541
601
        # We should have updated the ListStore with the new file commit info
542
602
        self.assertEqual('Some text\nfor a\n', get_saved_text(1))
543
603
 
544
 
        dlg._treeview_files.set_cursor((2,))
 
604
        dlg._treeview_files.set_cursor(
 
605
            Gtk.TreePath(path=2), None, False)
545
606
        self.assertEqual('Commit message for b/',
546
607
                         dlg._file_message_expander.get_label())
547
608
        self.assertTrue(dlg._file_message_expander.get_expanded())
552
613
        dlg._set_file_commit_message('More text\nfor b\n')
553
614
        # Now switch back to 'a'. The message should be saved, and the buffer
554
615
        # should be updated with the other text
555
 
        dlg._treeview_files.set_cursor((1,))
 
616
        dlg._treeview_files.set_cursor(
 
617
            Gtk.TreePath(path=1), None, False)
556
618
        self.assertEqual('More text\nfor b\n', get_saved_text(2))
557
619
        self.assertEqual('Commit message for a',
558
620
                         dlg._file_message_expander.get_label())
567
629
        tree.add(['a', 'b'], ['a-id', 'b-id'])
568
630
 
569
631
        dlg = commit.CommitDialog(tree)
570
 
        self.assertEqual([(None, None, True),
 
632
        self.assertEqual([("", "", True),
571
633
                          ('a-id', 'a', True),
572
634
                          ('b-id', 'b', True),
573
635
                         ], [(r[0], r[1], r[2]) for r in dlg._files_store])
578
640
        #       do with. So instead, we just call toggle directly, and assume
579
641
        #       that toggle is hooked in correctly
580
642
        # column = dlg._treeview_files.get_column(0)
581
 
        # renderer = column.get_cell_renderers()[0]
 
643
        # renderer = column.get_cells()[0]
582
644
 
583
645
        # Toggle a single entry should set just that entry to False
584
646
        dlg._toggle_commit(None, 1, dlg._files_store)
585
 
        self.assertEqual([(None, None, True),
 
647
        self.assertEqual([("", "", True),
586
648
                          ('a-id', 'a', False),
587
649
                          ('b-id', 'b', True),
588
650
                         ], [(r[0], r[1], r[2]) for r in dlg._files_store])
589
651
 
590
652
        # Toggling the main entry should set all entries
591
653
        dlg._toggle_commit(None, 0, dlg._files_store)
592
 
        self.assertEqual([(None, None, False),
 
654
        self.assertEqual([("", "", False),
593
655
                          ('a-id', 'a', False),
594
656
                          ('b-id', 'b', False),
595
657
                         ], [(r[0], r[1], r[2]) for r in dlg._files_store])
596
658
 
597
659
        dlg._toggle_commit(None, 2, dlg._files_store)
598
 
        self.assertEqual([(None, None, False),
 
660
        self.assertEqual([("", "", False),
599
661
                          ('a-id', 'a', False),
600
662
                          ('b-id', 'b', True),
601
663
                         ], [(r[0], r[1], r[2]) for r in dlg._files_store])
602
664
 
603
665
        dlg._toggle_commit(None, 0, dlg._files_store)
604
 
        self.assertEqual([(None, None, True),
 
666
        self.assertEqual([("", "", True),
605
667
                          ('a-id', 'a', True),
606
668
                          ('b-id', 'b', True),
607
669
                         ], [(r[0], r[1], r[2]) for r in dlg._files_store])
631
693
        dlg._commit_selected_radio.set_active(True)
632
694
        self.assertEqual((['a_file', 'b_dir'], []), dlg._get_specific_files())
633
695
 
634
 
        dlg._treeview_files.set_cursor((1,))
 
696
        dlg._treeview_files.set_cursor(
 
697
            Gtk.TreePath(path=1), None, False)
635
698
        dlg._set_file_commit_message('Test\nmessage\nfor a_file\n')
636
 
        dlg._treeview_files.set_cursor((2,))
 
699
        dlg._treeview_files.set_cursor(
 
700
            Gtk.TreePath(path=2), None, False)
637
701
        dlg._set_file_commit_message('message\nfor b_dir\n')
638
702
 
639
703
        self.assertEqual((['a_file', 'b_dir'],
659
723
        dlg._commit_selected_radio.set_active(True)
660
724
        self.assertEqual((['a_file', 'b_dir'], []), dlg._get_specific_files())
661
725
 
662
 
        dlg._treeview_files.set_cursor((1,))
 
726
        dlg._treeview_files.set_cursor(
 
727
            Gtk.TreePath(path=1), None, False)
663
728
        dlg._set_file_commit_message('Test\r\nmessage\rfor a_file\n')
664
 
        dlg._treeview_files.set_cursor((2,))
 
729
        dlg._treeview_files.set_cursor(
 
730
            Gtk.TreePath(path=2), None, False)
665
731
        dlg._set_file_commit_message('message\r\nfor\nb_dir\r')
666
732
 
667
733
        self.assertEqual((['a_file', 'b_dir'],
680
746
        def _question_yes(*args, **kwargs):
681
747
            self.questions.append(args)
682
748
            self.questions.append('YES')
683
 
            return gtk.RESPONSE_YES
 
749
            return Gtk.ResponseType.YES
684
750
        dlg._question_dialog = _question_yes
685
751
 
686
752
    def _set_question_no(self, dlg):
689
755
        def _question_no(*args, **kwargs):
690
756
            self.questions.append(args)
691
757
            self.questions.append('NO')
692
 
            return gtk.RESPONSE_NO
 
758
            return Gtk.ResponseType.NO
693
759
        dlg._question_dialog = _question_no
694
760
 
695
761
 
974
1040
 
975
1041
        dlg = commit.CommitDialog(tree)
976
1042
        dlg._commit_selected_radio.set_active(True) # enable partial
977
 
        dlg._treeview_files.set_cursor((1,))
 
1043
        dlg._treeview_files.set_cursor(
 
1044
            Gtk.TreePath(path=1), None, False)
978
1045
        dlg._set_file_commit_message('Message for A\n')
979
 
        dlg._treeview_files.set_cursor((2,))
 
1046
        dlg._treeview_files.set_cursor(
 
1047
            Gtk.TreePath(path=2), None, False)
980
1048
        dlg._set_file_commit_message('Message for B\n')
981
1049
        dlg._toggle_commit(None, 2, dlg._files_store) # unset 'b'
982
1050
        dlg._set_global_commit_message('Commit just "a"')
1009
1077
        tree.merge_from_branch(tree2.branch)
1010
1078
 
1011
1079
        dlg = commit.CommitDialog(tree)
1012
 
        dlg._treeview_files.set_cursor((1,)) # 'a'
 
1080
        dlg._treeview_files.set_cursor(
 
1081
            Gtk.TreePath(path=1), None, False) # 'a'
1013
1082
        dlg._set_file_commit_message('Message for A\n')
1014
1083
        # No message for 'B'
1015
1084
        dlg._set_global_commit_message('Merging from "tree2"\n')
1032
1101
                         bencode.bdecode(file_info.encode('UTF-8')))
1033
1102
 
1034
1103
    def test_commit_unicode_messages(self):
1035
 
        self.requireFeature(tests.UnicodeFilenameFeature)
 
1104
        self.requireFeature(UnicodeFilenameFeature)
1036
1105
 
1037
1106
        tree = self.make_branch_and_tree('tree')
1038
1107
        tree.branch.get_config().set_user_option('per_file_commits', 'true')
1040
1109
        tree.add(['a', u'\u03a9'], ['a-id', 'omega-id'])
1041
1110
 
1042
1111
        dlg = commit.CommitDialog(tree)
1043
 
        dlg._treeview_files.set_cursor((1,)) # 'a'
 
1112
        dlg._treeview_files.set_cursor(
 
1113
            Gtk.TreePath(path=1), None, False) # 'a'
1044
1114
        dlg._set_file_commit_message(u'Test \xfan\xecc\xf6de\n')
1045
 
        dlg._treeview_files.set_cursor((2,)) # omega
 
1115
        dlg._treeview_files.set_cursor(
 
1116
            Gtk.TreePath(path=2), None, False) # omega
1046
1117
        dlg._set_file_commit_message(u'\u03a9 is the end of all things.\n')
1047
1118
        dlg._set_global_commit_message(u'\u03a9 and \xfan\xecc\xf6de\n')
1048
1119
 
1104
1175
        super(TestSavedCommitMessages, self).setUp()
1105
1176
        # Install our hook
1106
1177
        branch.Branch.hooks.install_named_hook(
1107
 
            'post_uncommit', commit.save_commit_messages, None)
 
1178
            'post_uncommit', commitmsgs.save_commit_messages, None)
1108
1179
 
1109
1180
    def _get_file_info_dict(self, rank):
1110
1181
        file_info = [dict(path='a', file_id='a-id', message='a msg %d' % rank),
1227
1298
        self.assertEquals(u'', self._get_commit_message())
1228
1299
        self.assertEquals(u'de',
1229
1300
                          self._get_file_commit_messages())
 
1301
 
 
1302
 
 
1303
class BzrHandlePatchTestCase(tests.TestCase):
 
1304
 
 
1305
    def setUp(self):
 
1306
        top = os.path.abspath(os.path.join(
 
1307
            os.path.dirname(__file__), os.pardir))
 
1308
        self.script = os.path.join(top, 'bzr-handle-patch')
 
1309
        self.env = dict(os.environ)
 
1310
        self.env['BZR_PLUGINS_AT'] = 'gtk@%s' % top
 
1311
        self.patch = NamedTemporaryFile()
 
1312
        self.patch.write('\n'.join([
 
1313
            "=== added file '_test.txt'",
 
1314
            "--- _test.txt      1970-01-01 00:00:00 +0000",
 
1315
            "+++ _test.txt      2012-02-03 20:00:34 +0000",
 
1316
            "@@ -0,0 +1,1 @@",
 
1317
            "+hello",
 
1318
            ]))
 
1319
        self.patch.flush()
 
1320
        super(BzrHandlePatchTestCase, self).setUp()
 
1321
 
 
1322
    def test_smoketest(self):
 
1323
        # This is a smoke test to verify the process starts.
 
1324
        bzr_notify = subprocess.Popen(
 
1325
            [self.script, self.patch.name, 'test'],
 
1326
            stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=self.env)
 
1327
        stdout, stderr = bzr_notify.communicate()
 
1328
        self.assertEqual('', stdout)
 
1329
        self.assertEqual('', stderr)