Exemple #1
0
    def test_get_sorted_when_many_fields(self):
        config = get_sorted_config({
            'separator': '/',
            'constant': False,
            'min': -10,
            'type': 'int',
            'default': 3,
            'name': 'Param X',
            'values': [],
            'required': True,
            'max': 5,
            'param': '-i',
            'description': 'guess number'
        })

        expected = OrderedDict(
            [('name', 'Param X'),
             ('required', True),
             ('param', '-i'),
             ('type', 'int'),
             ('default', 3),
             ('constant', False),
             ('description', 'guess number'),
             ('values', []),
             ('min', -10),
             ('max', 5),
             ('separator', '/')])
        self.assertEqual(expected, config)
def get_sorted_config(config):
    key_order = ['name', 'script_path',
                 'working_directory',
                 'hidden',
                 'description',
                 'group',
                 'allowed_users',
                 'admin_users',
                 'schedulable',
                 'include',
                 'output_files',
                 'requires_terminal',
                 'output_format',
                 'parameters']

    def get_order(key):
        if key == 'parameters':
            return 99
        elif key in key_order:
            return key_order.index(key)
        else:
            return 50

    sorted_config = OrderedDict(sorted(config.items(), key=lambda item: get_order(item[0])))
    if config.get('parameters'):
        for i, param in enumerate(config['parameters']):
            config['parameters'][i] = parameter_config.get_sorted_config(param)

    return sorted_config
Exemple #3
0
    def test_get_sorted_when_3_fields(self):
        config = get_sorted_config({'type': 'int', 'name': 'Param X', 'required': True})

        expected = OrderedDict(
            [('name', 'Param X'),
             ('required', True),
             ('type', 'int')])
        self.assertEqual(expected, config)
Exemple #4
0
    def test_get_sorted_when_unknown_fields(self):
        config = get_sorted_config({
            'key1': 'abc',
            'file_recursive': True,
            'key2': 123,
            'name': 'Param X',
            'key3': []
        })

        expected = OrderedDict([('name', 'Param X'), ('file_recursive', True),
                                ('key1', 'abc'), ('key2', 123), ('key3', [])])

        self.assertEqual(expected.popitem(last=False),
                         config.popitem(last=False))
        self.assertEqual(expected.popitem(last=False),
                         config.popitem(last=False))
        self.assertCountEqual(expected.items(), config.items())