summaryrefslogtreecommitdiff
path: root/reconfigure/tests/configs/base_test.py
blob: ff0fc78d90abf2e8a11dc039fb3a72f12cd543e1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import unittest
import json


class BaseConfigTest (unittest.TestCase):
    sources = ""
    result = None
    config = None
    config_kwargs = {}
    stringify_filter = staticmethod(lambda x: x.split())

    def test_config(self):
        if not self.config:
            return

        self.maxDiff = None

        config = self.config(content=self.sources[None], **self.config_kwargs)
        if config.includer:
            config.includer.content_map = self.sources
        config.load()
        #print config.tree._node
        #print 'RESULT', config.tree.to_dict()
        #print 'SOURCE', self.__class__.result
        #self.assertTrue(self.__class__.result== config.tree.to_dict())
        a, b = self.__class__.result, config.tree.to_dict()
        if a != b:
            print('SOURCE: %s\nGENERATED: %s\n' % (json.dumps(a, indent=4), json.dumps(b, indent=4)))
        self.assertEquals(a, b)

        result = config.save()
        s_filter = self.__class__.stringify_filter
        #print s_filter(result[None])
        for k, v in result.items():
            self.assertEquals(
                s_filter(self.__class__.sources[k]),
                s_filter(v)
            )