OLD | NEW |
1 # Copyright (C) 2011 Google Inc. All rights reserved. | 1 # Copyright (C) 2011 Google Inc. All rights reserved. |
2 # | 2 # |
3 # Redistribution and use in source and binary forms, with or without | 3 # Redistribution and use in source and binary forms, with or without |
4 # modification, are permitted provided that the following conditions are | 4 # modification, are permitted provided that the following conditions are |
5 # met: | 5 # met: |
6 # | 6 # |
7 # * Redistributions of source code must retain the above copyright | 7 # * Redistributions of source code must retain the above copyright |
8 # notice, this list of conditions and the following disclaimer. | 8 # notice, this list of conditions and the following disclaimer. |
9 # * Redistributions in binary form must reproduce the above | 9 # * Redistributions in binary form must reproduce the above |
10 # copyright notice, this list of conditions and the following disclaimer | 10 # copyright notice, this list of conditions and the following disclaimer |
(...skipping 28 matching lines...) Expand all Loading... |
39 return all_test_configurations | 39 return all_test_configurations |
40 | 40 |
41 MOCK_MACROS = { | 41 MOCK_MACROS = { |
42 'mac': ['snowleopard'], | 42 'mac': ['snowleopard'], |
43 'win': ['xp', 'vista', 'win7'], | 43 'win': ['xp', 'vista', 'win7'], |
44 'linux': ['lucid'], | 44 'linux': ['lucid'], |
45 } | 45 } |
46 | 46 |
47 | 47 |
48 class TestConfigurationTest(unittest.TestCase): | 48 class TestConfigurationTest(unittest.TestCase): |
| 49 |
49 def test_items(self): | 50 def test_items(self): |
50 config = TestConfiguration('xp', 'x86', 'release') | 51 config = TestConfiguration('xp', 'x86', 'release') |
51 result_config_dict = {} | 52 result_config_dict = {} |
52 for category, specifier in config.items(): | 53 for category, specifier in config.items(): |
53 result_config_dict[category] = specifier | 54 result_config_dict[category] = specifier |
54 self.assertEqual({'version': 'xp', 'architecture': 'x86', 'build_type':
'release'}, result_config_dict) | 55 self.assertEqual({'version': 'xp', 'architecture': 'x86', 'build_type':
'release'}, result_config_dict) |
55 | 56 |
56 def test_keys(self): | 57 def test_keys(self): |
57 config = TestConfiguration('xp', 'x86', 'release') | 58 config = TestConfiguration('xp', 'x86', 'release') |
58 result_config_keys = [] | 59 result_config_keys = [] |
(...skipping 14 matching lines...) Expand all Loading... |
73 config_dict[TestConfiguration('xp', 'x86', 'release')] = True | 74 config_dict[TestConfiguration('xp', 'x86', 'release')] = True |
74 self.assertIn(TestConfiguration('xp', 'x86', 'release'), config_dict) | 75 self.assertIn(TestConfiguration('xp', 'x86', 'release'), config_dict) |
75 self.assertTrue(config_dict[TestConfiguration('xp', 'x86', 'release')]) | 76 self.assertTrue(config_dict[TestConfiguration('xp', 'x86', 'release')]) |
76 | 77 |
77 def query_unknown_key(): | 78 def query_unknown_key(): |
78 return config_dict[TestConfiguration('xp', 'x86', 'debug')] | 79 return config_dict[TestConfiguration('xp', 'x86', 'debug')] |
79 | 80 |
80 self.assertRaises(KeyError, query_unknown_key) | 81 self.assertRaises(KeyError, query_unknown_key) |
81 self.assertIn(TestConfiguration('xp', 'x86', 'release'), config_dict) | 82 self.assertIn(TestConfiguration('xp', 'x86', 'release'), config_dict) |
82 self.assertNotIn(TestConfiguration('xp', 'x86', 'debug'), config_dict) | 83 self.assertNotIn(TestConfiguration('xp', 'x86', 'debug'), config_dict) |
83 configs_list = [TestConfiguration('xp', 'x86', 'release'), TestConfigura
tion('xp', 'x86', 'debug'), TestConfiguration('xp', 'x86', 'debug')] | 84 configs_list = [ |
| 85 TestConfiguration( |
| 86 'xp', 'x86', 'release'), TestConfiguration( |
| 87 'xp', 'x86', 'debug'), TestConfiguration( |
| 88 'xp', 'x86', 'debug')] |
84 self.assertEqual(len(configs_list), 3) | 89 self.assertEqual(len(configs_list), 3) |
85 self.assertEqual(len(set(configs_list)), 2) | 90 self.assertEqual(len(set(configs_list)), 2) |
86 | 91 |
87 def test_eq(self): | 92 def test_eq(self): |
88 self.assertEqual(TestConfiguration('xp', 'x86', 'release'), TestConfigur
ation('xp', 'x86', 'release')) | 93 self.assertEqual(TestConfiguration('xp', 'x86', 'release'), TestConfigur
ation('xp', 'x86', 'release')) |
89 self.assertNotEquals(TestConfiguration('xp', 'x86', 'release'), TestConf
iguration('xp', 'x86', 'debug')) | 94 self.assertNotEquals(TestConfiguration('xp', 'x86', 'release'), TestConf
iguration('xp', 'x86', 'debug')) |
90 | 95 |
91 def test_values(self): | 96 def test_values(self): |
92 config = TestConfiguration('xp', 'x86', 'release') | 97 config = TestConfiguration('xp', 'x86', 'release') |
93 result_config_values = [] | 98 result_config_values = [] |
94 for value in config.values(): | 99 for value in config.values(): |
95 result_config_values.append(value) | 100 result_config_values.append(value) |
96 self.assertEqual(set(['xp', 'x86', 'release']), set(result_config_values
)) | 101 self.assertEqual(set(['xp', 'x86', 'release']), set(result_config_values
)) |
97 | 102 |
98 | 103 |
99 class SpecifierSorterTest(unittest.TestCase): | 104 class SpecifierSorterTest(unittest.TestCase): |
| 105 |
100 def __init__(self, testFunc): | 106 def __init__(self, testFunc): |
101 self._all_test_configurations = make_mock_all_test_configurations_set() | 107 self._all_test_configurations = make_mock_all_test_configurations_set() |
102 unittest.TestCase.__init__(self, testFunc) | 108 unittest.TestCase.__init__(self, testFunc) |
103 | 109 |
104 def test_init(self): | 110 def test_init(self): |
105 sorter = SpecifierSorter() | 111 sorter = SpecifierSorter() |
106 self.assertIsNone(sorter.category_for_specifier('control')) | 112 self.assertIsNone(sorter.category_for_specifier('control')) |
107 sorter = SpecifierSorter(self._all_test_configurations) | 113 sorter = SpecifierSorter(self._all_test_configurations) |
108 self.assertEqual(sorter.category_for_specifier('xp'), 'version') | 114 self.assertEqual(sorter.category_for_specifier('xp'), 'version') |
109 sorter = SpecifierSorter(self._all_test_configurations, MOCK_MACROS) | 115 sorter = SpecifierSorter(self._all_test_configurations, MOCK_MACROS) |
(...skipping 26 matching lines...) Expand all Loading... |
136 sorter = SpecifierSorter(self._all_test_configurations) | 142 sorter = SpecifierSorter(self._all_test_configurations) |
137 self.assertEqual(sorter.specifier_priority('x86'), 1) | 143 self.assertEqual(sorter.specifier_priority('x86'), 1) |
138 self.assertEqual(sorter.specifier_priority('snowleopard'), 0) | 144 self.assertEqual(sorter.specifier_priority('snowleopard'), 0) |
139 | 145 |
140 def test_sort_specifiers(self): | 146 def test_sort_specifiers(self): |
141 sorter = SpecifierSorter(self._all_test_configurations, MOCK_MACROS) | 147 sorter = SpecifierSorter(self._all_test_configurations, MOCK_MACROS) |
142 self.assertEqual(sorter.sort_specifiers(set()), []) | 148 self.assertEqual(sorter.sort_specifiers(set()), []) |
143 self.assertEqual(sorter.sort_specifiers(set(['x86'])), ['x86']) | 149 self.assertEqual(sorter.sort_specifiers(set(['x86'])), ['x86']) |
144 self.assertEqual(sorter.sort_specifiers(set(['x86', 'win7'])), ['win7',
'x86']) | 150 self.assertEqual(sorter.sort_specifiers(set(['x86', 'win7'])), ['win7',
'x86']) |
145 self.assertEqual(sorter.sort_specifiers(set(['x86', 'debug', 'win7'])),
['win7', 'x86', 'debug']) | 151 self.assertEqual(sorter.sort_specifiers(set(['x86', 'debug', 'win7'])),
['win7', 'x86', 'debug']) |
146 self.assertEqual(sorter.sort_specifiers(set(['snowleopard', 'x86', 'debu
g', 'win7'])), ['snowleopard', 'win7', 'x86', 'debug']) | 152 self.assertEqual(sorter.sort_specifiers(set(['snowleopard', 'x86', 'debu
g', 'win7'])), [ |
| 153 'snowleopard', 'win7', 'x86', 'debug']) |
147 self.assertEqual(sorter.sort_specifiers(set(['x86', 'mac', 'debug', 'win
7'])), ['mac', 'win7', 'x86', 'debug']) | 154 self.assertEqual(sorter.sort_specifiers(set(['x86', 'mac', 'debug', 'win
7'])), ['mac', 'win7', 'x86', 'debug']) |
148 | 155 |
149 | 156 |
150 class TestConfigurationConverterTest(unittest.TestCase): | 157 class TestConfigurationConverterTest(unittest.TestCase): |
| 158 |
151 def __init__(self, testFunc): | 159 def __init__(self, testFunc): |
152 self._all_test_configurations = make_mock_all_test_configurations_set() | 160 self._all_test_configurations = make_mock_all_test_configurations_set() |
153 unittest.TestCase.__init__(self, testFunc) | 161 unittest.TestCase.__init__(self, testFunc) |
154 | 162 |
155 def test_symmetric_difference(self): | 163 def test_symmetric_difference(self): |
156 self.assertEqual(TestConfigurationConverter.symmetric_difference([set(['
a', 'b']), set(['b', 'c'])]), set(['a', 'c'])) | 164 self.assertEqual(TestConfigurationConverter.symmetric_difference([set(['
a', 'b']), set(['b', 'c'])]), set(['a', 'c'])) |
157 self.assertEqual(TestConfigurationConverter.symmetric_difference([set(['
a', 'b']), set(['b', 'c']), set(['b', 'd'])]), set(['a', 'c', 'd'])) | 165 self.assertEqual(TestConfigurationConverter.symmetric_difference( |
| 166 [set(['a', 'b']), set(['b', 'c']), set(['b', 'd'])]), set(['a', 'c',
'd'])) |
158 | 167 |
159 def test_to_config_set(self): | 168 def test_to_config_set(self): |
160 converter = TestConfigurationConverter(self._all_test_configurations) | 169 converter = TestConfigurationConverter(self._all_test_configurations) |
161 | 170 |
162 self.assertEqual(converter.to_config_set(set()), self._all_test_configur
ations) | 171 self.assertEqual(converter.to_config_set(set()), self._all_test_configur
ations) |
163 | 172 |
164 self.assertEqual(converter.to_config_set(set(['foo'])), set()) | 173 self.assertEqual(converter.to_config_set(set(['foo'])), set()) |
165 | 174 |
166 self.assertEqual(converter.to_config_set(set(['xp', 'foo'])), set()) | 175 self.assertEqual(converter.to_config_set(set(['xp', 'foo'])), set()) |
167 | 176 |
168 errors = [] | 177 errors = [] |
169 self.assertEqual(converter.to_config_set(set(['xp', 'foo']), errors), se
t()) | 178 self.assertEqual(converter.to_config_set(set(['xp', 'foo']), errors), se
t()) |
170 self.assertEqual(errors, ["Unrecognized specifier 'foo'"]) | 179 self.assertEqual(errors, ["Unrecognized specifier 'foo'"]) |
171 | 180 |
172 self.assertEqual(converter.to_config_set(set(['xp', 'x86_64'])), set()) | 181 self.assertEqual(converter.to_config_set(set(['xp', 'x86_64'])), set()) |
173 | 182 |
174 configs_to_match = set([ | 183 configs_to_match = set([ |
175 TestConfiguration('xp', 'x86', 'release'), | 184 TestConfiguration('xp', 'x86', 'release'), |
176 ]) | 185 ]) |
177 self.assertEqual(converter.to_config_set(set(['xp', 'release'])), config
s_to_match) | 186 self.assertEqual(converter.to_config_set(set(['xp', 'release'])), config
s_to_match) |
178 | 187 |
179 configs_to_match = set([ | 188 configs_to_match = set([ |
180 TestConfiguration('snowleopard', 'x86', 'release'), | 189 TestConfiguration('snowleopard', 'x86', 'release'), |
181 TestConfiguration('vista', 'x86', 'release'), | 190 TestConfiguration('vista', 'x86', 'release'), |
182 TestConfiguration('win7', 'x86', 'release'), | 191 TestConfiguration('win7', 'x86', 'release'), |
183 TestConfiguration('xp', 'x86', 'release'), | 192 TestConfiguration('xp', 'x86', 'release'), |
184 TestConfiguration('lucid', 'x86', 'release'), | 193 TestConfiguration('lucid', 'x86', 'release'), |
185 TestConfiguration('lucid', 'x86_64', 'release'), | 194 TestConfiguration('lucid', 'x86_64', 'release'), |
186 ]) | 195 ]) |
187 self.assertEqual(converter.to_config_set(set(['release'])), configs_to_m
atch) | 196 self.assertEqual(converter.to_config_set(set(['release'])), configs_to_m
atch) |
188 | 197 |
189 configs_to_match = set([ | 198 configs_to_match = set([ |
190 TestConfiguration('lucid', 'x86_64', 'release'), | 199 TestConfiguration('lucid', 'x86_64', 'release'), |
191 TestConfiguration('lucid', 'x86_64', 'debug'), | 200 TestConfiguration('lucid', 'x86_64', 'debug'), |
192 ]) | 201 ]) |
193 self.assertEqual(converter.to_config_set(set(['x86_64'])), configs_to_ma
tch) | 202 self.assertEqual(converter.to_config_set(set(['x86_64'])), configs_to_ma
tch) |
194 | 203 |
195 configs_to_match = set([ | 204 configs_to_match = set([ |
196 TestConfiguration('lucid', 'x86_64', 'release'), | 205 TestConfiguration('lucid', 'x86_64', 'release'), |
197 TestConfiguration('lucid', 'x86_64', 'debug'), | 206 TestConfiguration('lucid', 'x86_64', 'debug'), |
198 TestConfiguration('lucid', 'x86', 'release'), | 207 TestConfiguration('lucid', 'x86', 'release'), |
199 TestConfiguration('lucid', 'x86', 'debug'), | 208 TestConfiguration('lucid', 'x86', 'debug'), |
200 TestConfiguration('snowleopard', 'x86', 'release'), | 209 TestConfiguration('snowleopard', 'x86', 'release'), |
201 TestConfiguration('snowleopard', 'x86', 'debug'), | 210 TestConfiguration('snowleopard', 'x86', 'debug'), |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
258 configs_to_match = set([ | 267 configs_to_match = set([ |
259 TestConfiguration('xp', 'x86', 'release'), | 268 TestConfiguration('xp', 'x86', 'release'), |
260 TestConfiguration('xp', 'x86', 'debug'), | 269 TestConfiguration('xp', 'x86', 'debug'), |
261 ]) | 270 ]) |
262 self.assertEqual(converter.to_specifiers_list(configs_to_match), [set(['
xp'])]) | 271 self.assertEqual(converter.to_specifiers_list(configs_to_match), [set(['
xp'])]) |
263 | 272 |
264 configs_to_match = set([ | 273 configs_to_match = set([ |
265 TestConfiguration('lucid', 'x86_64', 'debug'), | 274 TestConfiguration('lucid', 'x86_64', 'debug'), |
266 TestConfiguration('xp', 'x86', 'release'), | 275 TestConfiguration('xp', 'x86', 'release'), |
267 ]) | 276 ]) |
268 self.assertEqual(converter.to_specifiers_list(configs_to_match), [set(['
release', 'xp']), set(['debug', 'x86_64', 'linux'])]) | 277 self.assertEqual(converter.to_specifiers_list( |
| 278 configs_to_match), [set(['release', 'xp']), set(['debug', 'x86_64',
'linux'])]) |
269 | 279 |
270 configs_to_match = set([ | 280 configs_to_match = set([ |
271 TestConfiguration('xp', 'x86', 'release'), | 281 TestConfiguration('xp', 'x86', 'release'), |
272 TestConfiguration('xp', 'x86', 'release'), | 282 TestConfiguration('xp', 'x86', 'release'), |
273 TestConfiguration('lucid', 'x86_64', 'debug'), | 283 TestConfiguration('lucid', 'x86_64', 'debug'), |
274 TestConfiguration('lucid', 'x86', 'debug'), | 284 TestConfiguration('lucid', 'x86', 'debug'), |
275 TestConfiguration('lucid', 'x86_64', 'debug'), | 285 TestConfiguration('lucid', 'x86_64', 'debug'), |
276 TestConfiguration('lucid', 'x86', 'debug'), | 286 TestConfiguration('lucid', 'x86', 'debug'), |
277 ]) | 287 ]) |
278 self.assertEqual(converter.to_specifiers_list(configs_to_match), [set(['
release', 'xp']), set(['debug', 'linux'])]) | 288 self.assertEqual(converter.to_specifiers_list(configs_to_match), [set(['
release', 'xp']), set(['debug', 'linux'])]) |
(...skipping 14 matching lines...) Expand all Loading... |
293 ]) | 303 ]) |
294 self.assertEqual(converter.to_specifiers_list(configs_to_match), [set(['
xp', 'mac', 'release'])]) | 304 self.assertEqual(converter.to_specifiers_list(configs_to_match), [set(['
xp', 'mac', 'release'])]) |
295 | 305 |
296 configs_to_match = set([ | 306 configs_to_match = set([ |
297 TestConfiguration('xp', 'x86', 'release'), | 307 TestConfiguration('xp', 'x86', 'release'), |
298 TestConfiguration('snowleopard', 'x86', 'release'), | 308 TestConfiguration('snowleopard', 'x86', 'release'), |
299 TestConfiguration('win7', 'x86', 'release'), | 309 TestConfiguration('win7', 'x86', 'release'), |
300 TestConfiguration('win7', 'x86', 'debug'), | 310 TestConfiguration('win7', 'x86', 'debug'), |
301 TestConfiguration('lucid', 'x86', 'release'), | 311 TestConfiguration('lucid', 'x86', 'release'), |
302 ]) | 312 ]) |
303 self.assertEqual(converter.to_specifiers_list(configs_to_match), [set(['
win7']), set(['release', 'linux', 'x86']), set(['release', 'xp', 'mac'])]) | 313 self.assertEqual(converter.to_specifiers_list(configs_to_match), [ |
| 314 set(['win7']), set(['release', 'linux', 'x86']), set(['
release', 'xp', 'mac'])]) |
304 | 315 |
305 def test_macro_collapsing(self): | 316 def test_macro_collapsing(self): |
306 macros = {'foo': ['bar', 'baz'], 'people': ['bob', 'alice', 'john']} | 317 macros = {'foo': ['bar', 'baz'], 'people': ['bob', 'alice', 'john']} |
307 | 318 |
308 specifiers_list = [set(['john', 'godzilla', 'bob', 'alice'])] | 319 specifiers_list = [set(['john', 'godzilla', 'bob', 'alice'])] |
309 TestConfigurationConverter.collapse_macros(macros, specifiers_list) | 320 TestConfigurationConverter.collapse_macros(macros, specifiers_list) |
310 self.assertEqual(specifiers_list, [set(['people', 'godzilla'])]) | 321 self.assertEqual(specifiers_list, [set(['people', 'godzilla'])]) |
311 | 322 |
312 specifiers_list = [set(['john', 'godzilla', 'alice'])] | 323 specifiers_list = [set(['john', 'godzilla', 'alice'])] |
313 TestConfigurationConverter.collapse_macros(macros, specifiers_list) | 324 TestConfigurationConverter.collapse_macros(macros, specifiers_list) |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
360 TestConfiguration('xp', 'x86', 'release'), | 371 TestConfiguration('xp', 'x86', 'release'), |
361 TestConfiguration('vista', 'x86', 'release'), | 372 TestConfiguration('vista', 'x86', 'release'), |
362 TestConfiguration('win7', 'x86', 'release'), | 373 TestConfiguration('win7', 'x86', 'release'), |
363 ]) | 374 ]) |
364 self.assertEqual(converter.to_specifiers_list(configs_to_match), [set(['
win', 'release'])]) | 375 self.assertEqual(converter.to_specifiers_list(configs_to_match), [set(['
win', 'release'])]) |
365 | 376 |
366 def test_specifier_converter_access(self): | 377 def test_specifier_converter_access(self): |
367 specifier_sorter = TestConfigurationConverter(self._all_test_configurati
ons, MOCK_MACROS).specifier_sorter() | 378 specifier_sorter = TestConfigurationConverter(self._all_test_configurati
ons, MOCK_MACROS).specifier_sorter() |
368 self.assertEqual(specifier_sorter.category_for_specifier('snowleopard'),
'version') | 379 self.assertEqual(specifier_sorter.category_for_specifier('snowleopard'),
'version') |
369 self.assertEqual(specifier_sorter.category_for_specifier('mac'), 'versio
n') | 380 self.assertEqual(specifier_sorter.category_for_specifier('mac'), 'versio
n') |
OLD | NEW |