forked from python-rope/ropemode
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathropemodetest.py
122 lines (100 loc) · 4.94 KB
/
ropemodetest.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
import unittest
from ropemode import dialog
class ConfigTest(unittest.TestCase):
def setUp(self):
super(ConfigTest, self).setUp()
def tearDown(self):
super(ConfigTest, self).tearDown()
def test_trivial_case(self):
action, confs = dialog.show_dialog(_MockAskConfig(['done']), ['done'])
self.assertEquals('done', action)
self.assertEquals({}, confs)
def test_asking_normal_configs(self):
confs = {'name': dialog.Data()}
minibuffer = _MockAskConfig(['value', 'done'])
action, result = dialog.show_dialog(minibuffer,
['done', 'cancel'], confs)
self.assertEquals({'name': 'value'}, result)
self.assertEquals('done', action)
def test_optional_confs(self):
optionals = {'name': dialog.Data()}
minibuffer = _MockAskConfig(['done'])
action, result = dialog.show_dialog(minibuffer, ['done', 'cancel'],
optionals=optionals)
self.assertEquals(None, result.get('name', None))
self.assertEquals('done', action)
def test_optional_confs2(self):
optionals = {'name': dialog.Data()}
minibuffer = _MockAskConfig(['name', 'value', 'done'])
action, result = dialog.show_dialog(minibuffer, ['done', 'cancel'],
optionals=optionals)
self.assertEquals({'name': 'value'}, result)
self.assertEquals('done', action)
def test_trivial_batchset(self):
optionals = {'name': dialog.Data()}
minibuffer = _MockAskConfig(['batchset', 'name value', 'done'])
action, result = dialog.show_dialog(minibuffer, ['done', 'cancel'],
optionals=optionals)
self.assertEquals({'name': 'value'}, result)
self.assertEquals('done', action)
def test_batchset_multiple_sets(self):
optionals = {'name1': dialog.Data(), 'name2': dialog.Data()}
minibuffer = _MockAskConfig(['batchset',
'name1 value1\nname2 value2', 'done'])
action, result = dialog.show_dialog(minibuffer, ['done', 'cancel'],
optionals=optionals)
self.assertEquals({'name1': 'value1', 'name2': 'value2'}, result)
self.assertEquals('done', action)
def test_multiline_sets(self):
optionals = {'name': dialog.Data()}
minibuffer = _MockAskConfig(
['batchset', 'name\n line1\n line2\n', 'done'])
action, result = dialog.show_dialog(minibuffer, ['done', 'cancel'],
optionals=optionals)
self.assertEquals({'name': 'line1\n line2\n'}, result)
self.assertEquals('done', action)
def test_complex_batchset(self):
optionals = {'name1': dialog.Data(), 'name2': dialog.Data(),
'name3': dialog.Data()}
minibuffer = _MockAskConfig(
['batchset', 'name3\n value3\nname1\n line1\n '
'line2\n\nname2 value2\n', 'done'])
action, result = dialog.show_dialog(minibuffer, ['done', 'cancel'],
optionals=optionals)
self.assertEquals(
{'name1': 'line1\n line2\n', 'name2': 'value2',
'name3': 'value3\n'}, result)
self.assertEquals('done', action)
def test_skipping_blanks(self):
optionals = {'name1': dialog.Data(), 'name2': dialog.Data()}
minibuffer = _MockAskConfig(
['batchset', '\nname1\n value1\n\nname2 value2\n\n', 'done'])
action, result = dialog.show_dialog(minibuffer, ['done', 'cancel'],
optionals=optionals)
self.assertEquals({'name1': 'value1\n', 'name2': 'value2'}, result)
self.assertEquals('done', action)
def test_skip_initial_asking(self):
confs = {'name': dialog.Data()}
minibuffer = _MockAskConfig(
['name', 'value', 'done'])
action, result = dialog.show_dialog(minibuffer, ['done', 'cancel'],
confs=confs, initial_asking=False)
self.assertEquals({'name': 'value'}, result)
self.assertEquals('done', action)
def test_ignoring_trailing_colon_in_config_names(self):
optionals = {'name1': dialog.Data()}
minibuffer = _MockAskConfig(
['batchset', 'name1: value1\n', 'done'])
action, result = dialog.show_dialog(minibuffer, ['done', 'cancel'],
optionals=optionals)
self.assertEquals({'name1': 'value1'}, result)
self.assertEquals('done', action)
class _MockAskConfig(object):
def __init__(self, responses=[]):
self.responses = responses
self.asked = []
def __call__(self, config, starting=None):
self.asked.append(config)
return self.responses[len(self.asked) - 1]
if __name__ == '__main__':
unittest.main()