Skip to content

Commit ddb1b88

Browse files
committed
Add testcases for flag reordering feature
1 parent 5a2a92f commit ddb1b88

File tree

1 file changed

+89
-1
lines changed

1 file changed

+89
-1
lines changed

test_alias-tips.py

Lines changed: 89 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
from subprocess import PIPE
2-
from unittest import TestCase, expectedFailure
2+
from unittest import TestCase, expectedFailure, skip
33
import imp
44
import os
55
import subprocess
@@ -100,6 +100,94 @@ def test_pick_first_of_multiple(self):
100100
def test_multiple(self):
101101
self.assertEqual(alias_tips.find_alias([('g', 'git'), ('git st', 'git status -sb')], 'git status -sb'), 'g st')
102102

103+
class TestFlags(TestCase):
104+
def test_short_flags(self):
105+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a')], 'foo -a'), 'a')
106+
self.assertEqual(alias_tips.find_alias([('ab', 'foo -a -b')], 'foo -a'), 'ab -b')
107+
self.assertEqual(alias_tips.find_alias([('ab', 'foo -a -b')], 'foo -b'), 'ab -a')
108+
109+
def test_long_flags(self):
110+
self.assertEqual(alias_tips.find_alias([('a', 'foo --aa')], 'foo --aa'), 'a')
111+
self.assertEqual(alias_tips.find_alias([('ab', 'foo --aa --bb')], 'foo --aa'), 'ab --bb')
112+
self.assertEqual(alias_tips.find_alias([('ab', 'foo --aa --bb')], 'foo --bb'), 'ab --aa')
113+
114+
def test_mixed_flags(self):
115+
self.assertEqual(alias_tips.find_alias([('a', 'foo -ab')], 'foo -ab'), 'a')
116+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a -bc')], 'foo -a'), 'a -bc')
117+
self.assertEqual(alias_tips.find_alias([('a', 'foo -ab -c')], 'foo -c'), 'a -ab')
118+
self.assertEqual(alias_tips.find_alias([('a', 'foo -ab -c')], 'foo -ab'), 'a -c')
119+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a -bc')], 'foo -bc'), 'a -a')
120+
121+
def test_combined_flags(self):
122+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a --aa')], 'foo -a --aa'), 'a')
123+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a --aa')], 'foo --aa -a'), 'a')
124+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a')], 'foo -a --aa'), 'a --aa')
125+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a')], 'foo --aa -a'), 'a --aa')
126+
self.assertEqual(alias_tips.find_alias([('a', 'foo --aa')], 'foo --aa -a'), 'a -a')
127+
self.assertEqual(alias_tips.find_alias([('a', 'foo --aa')], 'foo -a --aa'), 'a -a')
128+
129+
@unittest.skip("unsupported for now, likely forever")
130+
def test_shortlong_flags(self):
131+
self.assertEqual(alias_tips.find_alias([('a', 'foo -aa')], 'foo -aa'), 'a')
132+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a -aa')], 'foo -aa -a'), 'a')
133+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a -aa')], 'foo -a -aa'), 'a')
134+
self.assertEqual(alias_tips.find_alias([('a', 'foo -aa')], 'foo -aa -a'), 'a -a')
135+
self.assertEqual(alias_tips.find_alias([('a', 'foo -aa')], 'foo -a -aa'), 'a -a')
136+
137+
def test_shortflags_and_args(self):
138+
self.assertEqual(alias_tips.find_alias([('a', 'foo bar -a')], 'foo bar -a'), 'a')
139+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a bar')], 'foo -a bar'), 'a')
140+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a bar baz')], 'foo -a bar baz'), 'a')
141+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a bar')], 'foo -a bar baz'), 'a baz')
142+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a bar')], 'foo -a bar baz'), 'a baz')
143+
144+
@unittest.skip("unsupported for now, likely forever")
145+
def test_shortflags_and_args_indistuingishable(self):
146+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a')], 'foo -b bar -a baz'), 'a baz -b bar') # or no match?!
147+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a baz')], 'foo -a bar baz'), 'a bar') # or no match?!
148+
149+
def test_longflags_and_args(self):
150+
self.assertEqual(alias_tips.find_alias([('a', 'foo bar --aa')], 'foo bar --aa'), 'a')
151+
self.assertEqual(alias_tips.find_alias([('a', 'foo --a=bar')], 'foo --a=bar'), 'a')
152+
self.assertEqual(alias_tips.find_alias([('a', 'foo --a=bar')], 'foo --a=bar baz'), 'a baz')
153+
154+
@unittest.skip("unsupported for now, likely forever")
155+
def test_longflags_and_args_indistuingishable(self):
156+
self.assertEqual(alias_tips.find_alias([('a', 'foo --aa')], 'foo --bar bar --aa baz'), 'a baz --bb bar') # or no match?!
157+
self.assertEqual(alias_tips.find_alias([('a', 'foo --aa baz')], 'foo --aa bar baz'), 'a bar') # or no match?!
158+
159+
def test_mixedflags_and_args(self):
160+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a --aa bar')], 'foo -a --aa bar'), 'a')
161+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a bar --aa')], 'foo -a bar --aa'), 'a')
162+
self.assertEqual(alias_tips.find_alias([('a', 'foo --aa bar -a')], 'foo --aa bar -a'), 'a')
163+
self.assertEqual(alias_tips.find_alias([('a', 'foo --aa -a bar')], 'foo --aa -a bar'), 'a')
164+
self.assertEqual(alias_tips.find_alias([('a', 'foo bar -a --aa')], 'foo bar -a --aa'), 'a')
165+
self.assertEqual(alias_tips.find_alias([('a', 'foo bar --aa -a')], 'foo bar --aa -a'), 'a')
166+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a --aa=bar')], 'foo -a --aa=bar'), 'a')
167+
self.assertEqual(alias_tips.find_alias([('a', 'foo --aa=bar -a')], 'foo --aa=bar -a'), 'a')
168+
169+
@unittest.skip("unsupported for now, likely forever")
170+
def test_mixedflags_and_args_indistuingishable(self):
171+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a --aa bar')], 'foo -a --aa baz bar'), 'a baz') # or no match?!
172+
self.assertEqual(alias_tips.find_alias([('a', 'foo --aa -a bar')], 'foo --aa -a baz bar'), 'a baz') # or no match?!
173+
174+
def test_flag_terminator(self):
175+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a')], 'foo -a --'), 'a --')
176+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a')], 'foo -a -- bar'), 'a -- bar')
177+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a')], 'foo -a -- -a'), 'a -- -a')
178+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a')], 'foo -a -- bar -a'), 'a -- bar -a')
179+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a')], 'foo -a -- --aa'), 'a -- --aa')
180+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a')], 'foo -a -- -a --aa'), 'a -- -a --aa')
181+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a')], 'foo -a -- --aa -a'), 'a -- --aa -a')
182+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a')], 'foo -a -- bar --aa'), 'a -- bar --aa')
183+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a')], 'foo -a -- bar -a --aa'), 'a -- bar -a --aa')
184+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a')], 'foo -a -- bar --aa -a'), 'a -- bar --aa -a')
185+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a')], 'foo -a -- -a --aa bar'), 'a -- bar -a --aa bar')
186+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a')], 'foo -a -- -a bar --aa'), 'a -- bar -a bar --aa')
187+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a')], 'foo -a -- --aa -a bar'), 'a -- bar --aa -a bar')
188+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a')], 'foo -a -- --aa bar -a'), 'a -- bar --aa bar -a')
189+
self.assertEqual(alias_tips.find_alias([('a', 'foo -a --aa')], 'foo -a --aa -- --aa bar -a'), 'a -- bar --aa bar -a')
190+
103191
class TestWhitebox(TestCase):
104192
def test_no_aliases(self):
105193
self.assertEqual(alias_tips.run([], 'bar -v', False, []), 'bar -v')

0 commit comments

Comments
 (0)