summaryrefslogtreecommitdiff
path: root/reconfigure/tests/parsers/base_test.py
blob: 58c2cc82223c1486d028393571474e09c4943626 (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
import unittest


class BaseParserTest (unittest.TestCase):
    source = ""
    parsed = None
    parser = None

    @property
    def stringified(self):
        return self.source

    def test_parse(self):
        if not self.__class__.parser:
            return

        nodetree = self.parser.parse(self.__class__.source)
        if self.__class__.parsed != nodetree:
            print('TARGET: %s\n\nPARSED: %s' % (self.__class__.parsed, nodetree))
        self.assertEquals(self.__class__.parsed, nodetree)

    def test_stringify(self):
        if not self.__class__.parser:
            return

        unparsed = self.parser.stringify(self.__class__.parsed)
        a, b = self.stringified, unparsed
        if a.split() != b.split():
            print('SOURCE: %s\n\nGENERATED: %s' % (a, b))
            self.assertEquals(a.split(), b.split())