1 from __future__
import absolute_import
, division
, unicode_literals
6 from cola
.settings
import Settings
11 def new_settings(**kwargs
):
12 settings
= Settings(**kwargs
)
17 class SettingsTestCase(unittest
.TestCase
):
18 """Tests the cola.settings module"""
21 Settings
.config_path
= self
._file
= helper
.tmp_path('settings')
22 self
.settings
= new_settings()
25 if os
.path
.exists(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'}
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',
48 def mock_verify(path
):
49 return path
== bookmark
['path']
51 settings
= new_settings()
52 settings
.add_bookmark(bookmark
['path'], bookmark
['name'])
55 settings
= new_settings(verify
=mock_verify
)
57 bookmarks
= settings
.bookmarks
58 self
.assertEqual(len(settings
.bookmarks
), 1)
59 self
.assertTrue(bookmark
in bookmarks
)
61 settings
.remove_bookmark(bookmark
['path'], bookmark
['name'])
62 bookmarks
= settings
.bookmarks
63 self
.assertEqual(len(bookmarks
), 0)
64 self
.assertFalse(bookmark
in bookmarks
)
66 def test_bookmarks_removes_missing_entries(self
):
67 """Test that missing entries are removed after a reload"""
68 bookmark
= {'path': '/tmp/this/does/not/exist', 'name': 'notexist'}
69 settings
= new_settings()
70 settings
.add_bookmark(bookmark
['path'], bookmark
['name'])
73 settings
= new_settings()
74 bookmarks
= settings
.bookmarks
75 self
.assertEqual(len(settings
.bookmarks
), 0)
76 self
.assertFalse(bookmark
in bookmarks
)
78 def test_rename_bookmark(self
):
79 settings
= new_settings()
80 settings
.add_bookmark('/tmp/repo', 'a')
81 settings
.add_bookmark('/tmp/repo', 'b')
82 settings
.add_bookmark('/tmp/repo', 'c')
84 settings
.rename_bookmark('/tmp/repo', 'b', 'test')
86 expect
= ['a', 'test', 'c']
87 actual
= [i
['name'] for i
in settings
.bookmarks
]
88 self
.assertEqual(expect
, actual
)
91 if __name__
== '__main__':