/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-09 02:55:06 UTC
  • mto: This revision was merged to the branch mainline in revision 776.
  • Revision ID: sinzui.is@verizon.net-20120209025506-qa8yd8livobyv5yy
Replace unsupports notify event with an new strategy to set and pane size
when the config is saved.
Hush lint.

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
23
from gi.repository import Gtk
22
24
 
29
31
    from bzrlib.tests.features import UnicodeFilenameFeature
30
32
except ImportError: # bzr < 2.5
31
33
    from bzrlib.tests import UnicodeFilenameFeature
32
 
try:
33
 
    from bzrlib import bencode
34
 
except ImportError:
35
 
    from bzrlib.util import bencode
 
34
from bzrlib import bencode
36
35
 
37
36
from bzrlib.plugins.gtk import (
38
37
    commit,
39
38
    commitmsgs,
40
39
    )
 
40
from bzrlib.plugins.gtk.commitmsgs import SavedCommitMessagesManager
 
41
from bzrlib.plugins.gtk.tests import MockMethod
41
42
 
42
43
 
43
44
# TODO: All we need is basic ancestry code to test this, we shouldn't need a
147
148
 
148
149
class TestCommitDialogSimple(tests.TestCaseWithTransport):
149
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
 
150
171
    def test_setup_parameters_no_pending(self):
151
172
        tree = self.make_branch_and_tree('tree')
152
173
        rev_id = tree.commit('first')
195
216
        self.assertEqual([], delta.removed)
196
217
        self.assertEqual([(u'a', 'a-id', 'file')], delta.added)
197
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
 
198
238
 
199
239
class TestCommitDialog(tests.TestCaseWithTransport):
200
240
 
299
339
 
300
340
        dlg = commit.CommitDialog(tree)
301
341
        values = [(r[0], r[1], r[2], r[3], r[4]) for r in dlg._files_store]
302
 
        self.assertEqual([(None, None, True, 'All Files', ''),
 
342
        self.assertEqual([("", "", True, 'All Files', ''),
303
343
                          ('a-id', 'a', True, 'a', 'added'),
304
344
                          ('b-id', 'b', True, 'b/', 'added'),
305
345
                          ('c-id', 'b/c', True, 'b/c', 'added'),
316
356
 
317
357
        dlg = commit.CommitDialog(tree)
318
358
        values = [(r[0], r[1], r[2], r[3], r[4]) for r in dlg._files_store]
319
 
        self.assertEqual([(None, None, True, 'All Files', ''),
 
359
        self.assertEqual([("", "", True, 'All Files', ''),
320
360
                          ('b-id', 'd', True, 'b/ => d/', 'renamed'),
321
361
                          ('a-id', 'd/a', True, 'a => d/a', 'renamed'),
322
362
                         ], values)
331
371
 
332
372
        dlg = commit.CommitDialog(tree)
333
373
        values = [(r[0], r[1], r[2], r[3], r[4]) for r in dlg._files_store]
334
 
        self.assertEqual([(None, None, True, 'All Files', ''),
 
374
        self.assertEqual([("", "", True, 'All Files', ''),
335
375
                          ('a-id', 'a', True, 'a', 'modified'),
336
376
                         ], values)
337
377
 
351
391
 
352
392
        dlg = commit.CommitDialog(tree)
353
393
        values = [(r[0], r[1], r[2], r[3], r[4]) for r in dlg._files_store]
354
 
        self.assertEqual([(None, None, True, 'All Files', ''),
 
394
        self.assertEqual([("", "", True, 'All Files', ''),
355
395
                          ('b-id', 'd', True, 'b/ => d/', 'renamed'),
356
396
                          ('a-id', 'd/a', True, 'a => d/a', 'renamed and modified'),
357
397
                          ('c-id', 'd/c', True, 'd/c', 'modified'),
374
414
 
375
415
        dlg = commit.CommitDialog(tree)
376
416
        values = [(r[0], r[1], r[2], r[3], r[4]) for r in dlg._files_store]
377
 
        self.assertEqual([(None, None, True, 'All Files', ''),
 
417
        self.assertEqual([("", "", True, 'All Files', ''),
378
418
                          ('a-id', 'a', True, 'a => a/', 'kind changed'),
379
419
                          # ('b-id', 'c', True, 'b => c/', 'renamed and modified'),
380
420
                         ], values)
390
430
 
391
431
        dlg = commit.CommitDialog(tree)
392
432
        values = [(r[0], r[1], r[2], r[3], r[4]) for r in dlg._files_store]
393
 
        self.assertEqual([(None, None, True, 'All Files', ''),
 
433
        self.assertEqual([("", "", True, 'All Files', ''),
394
434
                          ('a-id', 'a', True, 'a', 'removed'),
395
435
                          ('b-id', 'b', True, 'b/', 'removed'),
396
436
                         ], values)
405
445
 
406
446
        dlg = commit.CommitDialog(tree, selected='a')
407
447
        values = [(r[0], r[1], r[2], r[3], r[4]) for r in dlg._files_store]
408
 
        self.assertEqual([(None, None, False, 'All Files', ''),
 
448
        self.assertEqual([("", "", False, 'All Files', ''),
409
449
                          ('a-id', 'a', True, 'a', 'added'),
410
450
                          ('b-id', 'b', False, 'b/', 'added'),
411
451
                         ], values)
589
629
        tree.add(['a', 'b'], ['a-id', 'b-id'])
590
630
 
591
631
        dlg = commit.CommitDialog(tree)
592
 
        self.assertEqual([(None, None, True),
 
632
        self.assertEqual([("", "", True),
593
633
                          ('a-id', 'a', True),
594
634
                          ('b-id', 'b', True),
595
635
                         ], [(r[0], r[1], r[2]) for r in dlg._files_store])
604
644
 
605
645
        # Toggle a single entry should set just that entry to False
606
646
        dlg._toggle_commit(None, 1, dlg._files_store)
607
 
        self.assertEqual([(None, None, True),
 
647
        self.assertEqual([("", "", True),
608
648
                          ('a-id', 'a', False),
609
649
                          ('b-id', 'b', True),
610
650
                         ], [(r[0], r[1], r[2]) for r in dlg._files_store])
611
651
 
612
652
        # Toggling the main entry should set all entries
613
653
        dlg._toggle_commit(None, 0, dlg._files_store)
614
 
        self.assertEqual([(None, None, False),
 
654
        self.assertEqual([("", "", False),
615
655
                          ('a-id', 'a', False),
616
656
                          ('b-id', 'b', False),
617
657
                         ], [(r[0], r[1], r[2]) for r in dlg._files_store])
618
658
 
619
659
        dlg._toggle_commit(None, 2, dlg._files_store)
620
 
        self.assertEqual([(None, None, False),
 
660
        self.assertEqual([("", "", False),
621
661
                          ('a-id', 'a', False),
622
662
                          ('b-id', 'b', True),
623
663
                         ], [(r[0], r[1], r[2]) for r in dlg._files_store])
624
664
 
625
665
        dlg._toggle_commit(None, 0, dlg._files_store)
626
 
        self.assertEqual([(None, None, True),
 
666
        self.assertEqual([("", "", True),
627
667
                          ('a-id', 'a', True),
628
668
                          ('b-id', 'b', True),
629
669
                         ], [(r[0], r[1], r[2]) for r in dlg._files_store])
1258
1298
        self.assertEquals(u'', self._get_commit_message())
1259
1299
        self.assertEquals(u'de',
1260
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)