def test_merge_three_conditions(self): values = { ('linux',): { 'isolate_dependency_tracked': ['file_common', 'file_linux'], }, ('mac',): { 'isolate_dependency_tracked': ['file_common', 'file_mac'], }, ('win',): { 'isolate_dependency_tracked': ['file_common', 'file_win'], }, } expected = { 'conditions': [ ['OS=="linux"', { 'variables': { 'isolate_dependency_tracked': [ 'file_linux', ], }, }], ['OS=="linux" or OS=="mac" or OS=="win"', { 'variables': { 'isolate_dependency_tracked': [ 'file_common', ], }, }], ['OS=="mac"', { 'variables': { 'isolate_dependency_tracked': [ 'file_mac', ], }, }], ['OS=="win"', { 'variables': { 'isolate_dependency_tracked': [ 'file_win', ], }, }], ], } actual = isolate.convert_map_to_isolate_dict( isolate.reduce_inputs(isolate.invert_map(values)), ('OS',)) self.assertEqual(expected, actual)
def main(args=None): parser = run_test_cases.OptionParserWithLogging( usage='%prog <options> [file1] [file2] ...') parser.add_option( '-o', '--output', help='Output to file instead of stdout') parser.add_option( '--os', default=','.join(DEFAULT_OSES), help='Inject the list of OSes, default: %default') options, args = parser.parse_args(args) configs = load_isolates(args, options.os.split(',')) data = convert_map_to_isolate_dict( *reduce_inputs(*invert_map(configs.flatten()))) if options.output: with open(options.output, 'wb') as f: print_all(configs.file_comment, data, f) else: print_all(configs.file_comment, data, sys.stdout) return 0
def test_merge_empty(self): actual = isolate.convert_map_to_isolate_dict( isolate.reduce_inputs(isolate.invert_map({})), ('dummy1', 'dummy2')) self.assertEqual({'conditions': []}, actual)
def test_convert_map_to_isolate_dict(self): amiga = ('amiga',) atari = ('atari',) coleco = ('coleco',) dendy = ('dendy',) values = { 'command': { ('echo', 'Hello World'): (atari,), ('echo', 'You should get an Atari'): (amiga, coleco, dendy), }, KEY_TRACKED: { 'a': (amiga, atari, coleco, dendy), 'c': (atari,), 'e': (amiga, coleco, dendy), 'g': (amiga,), 'x': (amiga, atari, coleco, dendy), }, KEY_UNTRACKED: { 'b': (amiga, atari, coleco, dendy), 'd': (atari,), 'f': (amiga, coleco, dendy), 'h': (amiga, atari, dendy), }, KEY_TOUCHED: { 'touched': (amiga, atari, coleco, dendy), 'touched_a': (atari,), 'touched_e': (amiga, coleco, dendy), }, 'read_only': { False: (amiga,), True: (atari,), }, } expected_conditions = [ ['OS=="amiga"', { 'variables': { KEY_TRACKED: ['g'], 'read_only': False, }, }], ['OS=="amiga" or OS=="atari" or OS=="coleco" or OS=="dendy"', { 'variables': { KEY_TRACKED: ['a', 'x'], KEY_UNTRACKED: ['b'], KEY_TOUCHED: ['touched'], }, }], ['OS=="amiga" or OS=="atari" or OS=="dendy"', { 'variables': { KEY_UNTRACKED: ['h'], }, }], ['OS=="amiga" or OS=="coleco" or OS=="dendy"', { 'variables': { 'command': ['echo', 'You should get an Atari'], KEY_TRACKED: ['e'], KEY_UNTRACKED: ['f'], KEY_TOUCHED: ['touched_e'], }, }], ['OS=="atari"', { 'variables': { 'command': ['echo', 'Hello World'], KEY_TRACKED: ['c'], KEY_UNTRACKED: ['d'], KEY_TOUCHED: ['touched_a'], 'read_only': True, }, }], ] actual = isolate.convert_map_to_isolate_dict(values, ('OS',)) self.assertEqual(expected_conditions, sorted(actual.pop('conditions'))) self.assertFalse(actual)
def test_merge_empty(self): actual = isolate.convert_map_to_isolate_dict( *isolate.reduce_inputs(*isolate.invert_map({}))) self.assertEquals({}, actual)
def test_convert_map_to_isolate_dict(self): values = { 'command': { ('echo', 'Hello World'): set(['atari']), ('echo', 'You should get an Atari'): set(['!atari']), }, KEY_TRACKED: { 'a': set([None]), 'c': set(['atari']), 'e': set(['!atari']), 'g': set(['amiga']), 'x': set([None]), }, KEY_UNTRACKED: { 'b': set([None]), 'd': set(['atari']), 'f': set(['!atari']), 'h': set(['!coleco']), }, KEY_TOUCHED: { 'touched': set([None]), 'touched_a': set(['atari']), 'touched_e': set(['!atari']), }, 'read_only': { None: set(['coleco', 'dendy']), False: set(['amiga']), True: set(['atari']), }, } oses = set(['amiga', 'atari', 'coleco', 'dendy']) expected = { 'variables': { KEY_TRACKED: ['a', 'x'], KEY_UNTRACKED: ['b'], KEY_TOUCHED: ['touched'], }, 'conditions': [ ['OS=="amiga"', { 'variables': { KEY_TRACKED: ['g'], 'read_only': False, }, }], ['OS=="atari"', { 'variables': { 'command': ['echo', 'Hello World'], KEY_TRACKED: ['c'], KEY_UNTRACKED: ['d'], KEY_TOUCHED: ['touched_a'], 'read_only': True, }, }, { 'variables': { 'command': ['echo', 'You should get an Atari'], KEY_TRACKED: ['e'], KEY_UNTRACKED: ['f'], KEY_TOUCHED: ['touched_e'], }, }], ['OS=="coleco"', { }, { 'variables': { KEY_UNTRACKED: ['h'], }, }], ], } self.assertEquals( expected, isolate.convert_map_to_isolate_dict(values, oses))