submodules: address pylint warnings
[git-cola.git] / test / settings_test.py
blob1abda533fee96e7ceeec8b3ae0c50d644a8b6d35
1 from __future__ import absolute_import, division, unicode_literals
3 import unittest
4 import os
6 from cola.settings import Settings
8 from . import helper
11 def new_settings(**kwargs):
12 settings = Settings(**kwargs)
13 settings.load()
14 return settings
17 class SettingsTestCase(unittest.TestCase):
18 """Tests the cola.settings module"""
20 def setUp(self):
21 Settings.config_path = self._file = helper.tmp_path('settings')
22 self.settings = new_settings()
24 def tearDown(self):
25 if os.path.exists(self._file):
26 os.remove(self._file)
28 def test_gui_save_restore(self):
29 """Test saving and restoring gui state"""
30 settings = new_settings()
31 settings.gui_state['test-gui'] = {'foo': 'bar'}
32 settings.save()
34 settings = new_settings()
35 state = settings.gui_state.get('test-gui', {})
36 self.assertTrue('foo' in state)
37 self.assertEqual(state['foo'], 'bar')
39 def test_bookmarks_save_restore(self):
40 """Test the bookmark save/restore feature"""
42 # We automatically purge missing entries so we mock-out
43 # git.is_git_worktree() so that this bookmark is kept.
45 bookmark = {'path': '/tmp/python/thinks/this/exists', 'name': 'exists'}
47 def mock_verify(path):
48 return path == bookmark['path']
50 settings = new_settings()
51 settings.add_bookmark(bookmark['path'], bookmark['name'])
52 settings.save()
54 settings = new_settings(verify=mock_verify)
56 bookmarks = settings.bookmarks
57 self.assertEqual(len(settings.bookmarks), 1)
58 self.assertTrue(bookmark in bookmarks)
60 settings.remove_bookmark(bookmark['path'], bookmark['name'])
61 bookmarks = settings.bookmarks
62 self.assertEqual(len(bookmarks), 0)
63 self.assertFalse(bookmark in bookmarks)
65 def test_bookmarks_removes_missing_entries(self):
66 """Test that missing entries are removed after a reload"""
67 bookmark = {'path': '/tmp/this/does/not/exist', 'name': 'notexist'}
68 settings = new_settings()
69 settings.add_bookmark(bookmark['path'], bookmark['name'])
70 settings.save()
72 settings = new_settings()
73 bookmarks = settings.bookmarks
74 self.assertEqual(len(settings.bookmarks), 0)
75 self.assertFalse(bookmark in bookmarks)
77 def test_rename_bookmark(self):
78 settings = new_settings()
79 settings.add_bookmark('/tmp/repo', 'a')
80 settings.add_bookmark('/tmp/repo', 'b')
81 settings.add_bookmark('/tmp/repo', 'c')
83 settings.rename_bookmark('/tmp/repo', 'b', 'test')
85 expect = ['a', 'test', 'c']
86 actual = [i['name'] for i in settings.bookmarks]
87 self.assertEqual(expect, actual)
90 if __name__ == '__main__':
91 unittest.main()