def test_get_sorted_with_parameters(self):
        config = get_sorted_config({
            'parameters': [{
                'name': 'param2',
                'description': 'desc 1'
            }, {
                'type': 'int',
                'name': 'paramA'
            }, {
                'default': 'false',
                'name': 'param1',
                'no_value': True
            }],
            'name':
            'Conf X'
        })

        expected = OrderedDict([
            ('name', 'Conf X'),
            ('parameters', [
                OrderedDict([('name', 'param2'), ('description', 'desc 1')]),
                OrderedDict([('name', 'paramA'), ('type', 'int')]),
                OrderedDict([('name', 'param1'), ('no_value', True),
                             ('default', 'false')])
            ]),
        ])
        self.assertEqual(expected, config)
    def test_get_sorted_when_many_fields(self):
        config = get_sorted_config({
            'output_files': ['~/my/file'],
            'name': 'Conf X',
            'include': 'included',
            'parameters': [],
            'description': 'My wonderful script',
            'requires_terminal': False,
            'allowed_users': [],
            'script_path': 'cd ~',
            'working_directory': '~'
        })

        expected = OrderedDict([
            ('name', 'Conf X'),
            ('script_path', 'cd ~'),
            ('working_directory', '~'),
            ('description', 'My wonderful script'),
            ('allowed_users', []),
            ('include', 'included'),
            ('output_files', ['~/my/file']),
            ('requires_terminal', False),
            ('parameters', []),
        ])
        self.assertEqual(expected, config)
    def test_get_sorted_when_3_fields(self):
        config = get_sorted_config({'script_path': 'cd ~', 'name': 'Conf X', 'description': 'My wonderful script'})

        expected = OrderedDict(
            [('name', 'Conf X'),
             ('script_path', 'cd ~'),
             ('description', 'My wonderful script')])
        self.assertEqual(expected, config)
    def test_get_sorted_when_unknown_fields(self):
        config = get_sorted_config({
            'parameters': [],
            'key1': 'abc',
            'requires_terminal': False,
            'key2': 123})

        expected = OrderedDict([
            ('requires_terminal', False),
            ('key1', 'abc'),
            ('key2', 123),
            ('parameters', []),
        ])
        self.assertEqual(expected.popitem(False), config.popitem(False))
        self.assertEqual(expected.popitem(True), config.popitem(True))
        self.assertCountEqual(expected.items(), config.items())
예제 #5
0
    def test_json_comments(self):
        config = get_sorted_config(custom_json.loads(
                """{
                // Comment 1
                "parameters": [
                            // Comment 2
                            {"name": "param2", "description": "desc 1"},
                            {"type": "int", "name": "paramA"},
                            {"default": "false", "name": "param1", "no_value": true}
                            ],
                // Comment 3
                "name": "Conf X"
                }""")
            )

        expected = OrderedDict([
            ('name', 'Conf X'),
            ('parameters', [
                OrderedDict([('name', 'param2'), ('description', 'desc 1')]),
                OrderedDict([('name', 'paramA'), ('type', 'int')]),
                OrderedDict([('name', 'param1'), ('no_value', True), ('default', 'false')])
            ]),
        ])
        self.assertEqual(expected, config)
예제 #6
0
 def _save_config(self, config, path):
     sorted_config = get_sorted_config(config)
     config_json = json.dumps(sorted_config, indent=2)
     file_utils.write_file(path, config_json)