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_format.convert_map_to_isolate_dict( isolate_format.reduce_inputs(isolate_format.invert_map(values)), ('OS',)) self.assertEqual(expected, actual)
def test_merge_empty(self): actual = isolate_format.convert_map_to_isolate_dict( isolate_format.reduce_inputs(isolate_format.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': { 0: (amiga,), 1: (atari,), }, } expected_conditions = [ ['OS=="amiga"', { 'variables': { KEY_TRACKED: ['g'], 'read_only': 0, }, }], ['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': 1, }, }], ] actual = isolate_format.convert_map_to_isolate_dict(values, ('OS',)) self.assertEqual(expected_conditions, sorted(actual.pop('conditions'))) self.assertFalse(actual)