Esempio n. 1
0
    def test_parse_contents(self):
        conf = Configuration()

        JSON_TEST = ('{"key1": "value1"}', {'key1': 'value1'})
        YAML_TEST = ('key1: value1', {'key1': 'value1'})
        INI_TEST = ('[Section]\nkey1 = value1', {'Section': {'key1': 'value1'}, 'defaults': {}})

        
        json_value, _ = conf._parse_contents(JSON_TEST[0], 'json')
        self.assertEqual(json_value, JSON_TEST[1])

        yaml_value, _ = conf._parse_contents(YAML_TEST[0], 'yaml')
        self.assertEqual(yaml_value, YAML_TEST[1])

        ini_value, _ = conf._parse_contents(INI_TEST[0], 'ini')
        self.assertEqual(ini_value, INI_TEST[1])

        # Make sure it doesn't support invalid extensions ;)
        with self.assertRaises(ValueError):
            conf._parse_contents('foobar', 'xml')

        # Make sure a parse error returns None
        with mock.patch('json.loads') as m:
            m.side_effect = ValueError
            value, message = conf._parse_contents(JSON_TEST[0], 'json')
            self.assertEqual(value, None)
Esempio n. 2
0
    def test_load_source(self):
        conf = Configuration()

        test_file_type = 'json'
        test_contents = 'test contents'
        test_parsed = {'foo': 'bar'}

        conf._get_file_type = mock.Mock(return_value=test_file_type)
        conf._get_file_contents = mock.Mock(return_value=test_contents)
        conf._parse_contents = mock.Mock(return_value=(test_parsed, None))

        conf.load_source(self.test_origin)

        self.assertEqual(len(conf.sources), 1)
        built_source = conf.sources[0]
        self.assertEqual(built_source['origin'], self.test_origin)
        self.assertEqual(built_source['location'], self.test_origin)
        self.assertEqual(built_source['type'], test_file_type)
        self.assertEqual(built_source['contents'], test_contents)
        self.assertEqual(built_source['data'], test_parsed)