29
29
from bzrlib.tests.features import UnicodeFilenameFeature
30
30
except ImportError: # bzr < 2.5
31
31
from bzrlib.tests import UnicodeFilenameFeature
33
from bzrlib import bencode
35
from bzrlib.util import bencode
32
from bzrlib import bencode
37
34
from bzrlib.plugins.gtk import (
38
from bzrlib.plugins.gtk.commitmsgs import SavedCommitMessagesManager
39
from bzrlib.plugins.gtk.tests import MockMethod
43
42
# TODO: All we need is basic ancestry code to test this, we shouldn't need a
148
147
class TestCommitDialogSimple(tests.TestCaseWithTransport):
150
MockMethod.bind(self, CommitDialogNoWidgets, 'setup_params')
151
MockMethod.bind(self, CommitDialogNoWidgets, 'construct')
152
MockMethod.bind(self, CommitDialogNoWidgets, 'fill_in_data')
154
tree = self.make_branch_and_tree('tree')
155
rev_id = tree.commit('first')
156
dlg = CommitDialogNoWidgets(tree)
157
self.assertIs(tree, dlg._wt)
158
self.assertIs(None, dlg._selected)
159
self.assertTrue(dlg._enable_per_file_commits)
160
self.assertTrue(dlg._commit_all_changes)
161
self.assertIs(None, dlg.committed_revision_id)
162
self.assertIs(None, dlg._last_selected_file)
163
self.assertIsInstance(
164
dlg._saved_commit_messages_manager, SavedCommitMessagesManager)
165
self.assertTrue(CommitDialogNoWidgets.setup_params.called)
166
self.assertTrue(CommitDialogNoWidgets.construct.called)
167
self.assertTrue(CommitDialogNoWidgets.fill_in_data.called)
150
169
def test_setup_parameters_no_pending(self):
151
170
tree = self.make_branch_and_tree('tree')
152
171
rev_id = tree.commit('first')
195
214
self.assertEqual([], delta.removed)
196
215
self.assertEqual([(u'a', 'a-id', 'file')], delta.added)
217
def test_on_treeview_files_cursor_changed_no_selection(self):
218
MockMethod.bind(self, CommitDialogNoWidgets, '_update_per_file_info')
219
tree = self.make_branch_and_tree('tree')
220
rev_id = tree.commit('first')
221
dlg = CommitDialogNoWidgets(tree)
222
treeview = Gtk.TreeView()
223
dlg._on_treeview_files_cursor_changed(treeview)
224
self.assertFalse(CommitDialogNoWidgets._update_per_file_info.called)
226
def test_on_treeview_files_cursor_changed_with_destroyed_treeview(self):
227
MockMethod.bind(self, CommitDialogNoWidgets, '_update_per_file_info')
228
tree = self.make_branch_and_tree('tree')
229
rev_id = tree.commit('first')
230
dlg = CommitDialogNoWidgets(tree)
231
treeview = Gtk.TreeView()
233
dlg._on_treeview_files_cursor_changed(treeview)
234
self.assertFalse(CommitDialogNoWidgets._update_per_file_info.called)
199
237
class TestCommitDialog(tests.TestCaseWithTransport):
300
338
dlg = commit.CommitDialog(tree)
301
339
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', ''),
340
self.assertEqual([("", "", True, 'All Files', ''),
303
341
('a-id', 'a', True, 'a', 'added'),
304
342
('b-id', 'b', True, 'b/', 'added'),
305
343
('c-id', 'b/c', True, 'b/c', 'added'),
317
355
dlg = commit.CommitDialog(tree)
318
356
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', ''),
357
self.assertEqual([("", "", True, 'All Files', ''),
320
358
('b-id', 'd', True, 'b/ => d/', 'renamed'),
321
359
('a-id', 'd/a', True, 'a => d/a', 'renamed'),
332
370
dlg = commit.CommitDialog(tree)
333
371
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', ''),
372
self.assertEqual([("", "", True, 'All Files', ''),
335
373
('a-id', 'a', True, 'a', 'modified'),
352
390
dlg = commit.CommitDialog(tree)
353
391
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', ''),
392
self.assertEqual([("", "", True, 'All Files', ''),
355
393
('b-id', 'd', True, 'b/ => d/', 'renamed'),
356
394
('a-id', 'd/a', True, 'a => d/a', 'renamed and modified'),
357
395
('c-id', 'd/c', True, 'd/c', 'modified'),
375
413
dlg = commit.CommitDialog(tree)
376
414
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', ''),
415
self.assertEqual([("", "", True, 'All Files', ''),
378
416
('a-id', 'a', True, 'a => a/', 'kind changed'),
379
417
# ('b-id', 'c', True, 'b => c/', 'renamed and modified'),
391
429
dlg = commit.CommitDialog(tree)
392
430
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', ''),
431
self.assertEqual([("", "", True, 'All Files', ''),
394
432
('a-id', 'a', True, 'a', 'removed'),
395
433
('b-id', 'b', True, 'b/', 'removed'),
406
444
dlg = commit.CommitDialog(tree, selected='a')
407
445
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', ''),
446
self.assertEqual([("", "", False, 'All Files', ''),
409
447
('a-id', 'a', True, 'a', 'added'),
410
448
('b-id', 'b', False, 'b/', 'added'),
589
627
tree.add(['a', 'b'], ['a-id', 'b-id'])
591
629
dlg = commit.CommitDialog(tree)
592
self.assertEqual([(None, None, True),
630
self.assertEqual([("", "", True),
593
631
('a-id', 'a', True),
594
632
('b-id', 'b', True),
595
633
], [(r[0], r[1], r[2]) for r in dlg._files_store])
605
643
# Toggle a single entry should set just that entry to False
606
644
dlg._toggle_commit(None, 1, dlg._files_store)
607
self.assertEqual([(None, None, True),
645
self.assertEqual([("", "", True),
608
646
('a-id', 'a', False),
609
647
('b-id', 'b', True),
610
648
], [(r[0], r[1], r[2]) for r in dlg._files_store])
612
650
# Toggling the main entry should set all entries
613
651
dlg._toggle_commit(None, 0, dlg._files_store)
614
self.assertEqual([(None, None, False),
652
self.assertEqual([("", "", False),
615
653
('a-id', 'a', False),
616
654
('b-id', 'b', False),
617
655
], [(r[0], r[1], r[2]) for r in dlg._files_store])
619
657
dlg._toggle_commit(None, 2, dlg._files_store)
620
self.assertEqual([(None, None, False),
658
self.assertEqual([("", "", False),
621
659
('a-id', 'a', False),
622
660
('b-id', 'b', True),
623
661
], [(r[0], r[1], r[2]) for r in dlg._files_store])
625
663
dlg._toggle_commit(None, 0, dlg._files_store)
626
self.assertEqual([(None, None, True),
664
self.assertEqual([("", "", True),
627
665
('a-id', 'a', True),
628
666
('b-id', 'b', True),
629
667
], [(r[0], r[1], r[2]) for r in dlg._files_store])