File: testYAMLParser.py

package info (click to toggle)
galileo 0.5.1-11
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 420 kB
  • sloc: python: 3,462; xml: 23; makefile: 11; sh: 1
file content (116 lines) | stat: -rw-r--r-- 2,980 bytes parent folder | download | duplicates (5)
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
import unittest

from galileo import parser

class testUtilities(unittest.TestCase):

    def testStripCommentEmpty(self):
        self.assertEqual(parser._stripcomment(""), "")
    def testStripCommentOnlyComment(self):
        self.assertEqual(parser._stripcomment("# abcd"), "")
    def testStripCommentSmallLine(self):
        self.assertEqual(parser._stripcomment("ab # cd"), "ab")
    def testStripCommentDoubleComment(self):
        self.assertEqual(parser._stripcomment("ab # cd # ef"), "ab")

    def testdedent1(self):
        self.assertEqual(parser._dedent("""\
a:
  - a
  - b
""".split('\n'), 1), ['  - a', '  - b'])
    def testdedent2(self):
        self.assertEqual(parser._dedent("""\
-
  a:
    b
  c:
    5
""".split('\n'), 1), ['  a:', '    b', '  c:', '    5'])

class testload(unittest.TestCase):

    def testEmpty(self):
        self.assertEqual(parser.loads(""), None)

    def testSimpleComment(self):
        self.assertEqual(parser.loads("""\
# This is a comment
"""), None)

    def testOneKey(self):
        self.assertEqual(parser.loads("""\
test:
"""), {"test":None})

    def testOneKeyWithComment(self):
        self.assertEqual(parser.loads("""\
test: # This is the test Key
"""), {"test": None})

    def testMultiLines(self):
        self.assertEqual(parser.loads("\n"*5 + "test: # This is the test Key" + "\n" * 8), {"test": None})

    def testMultipleKeys(self):
        self.assertEqual(parser.loads("""
test:
test_2:
test-3:
"""), {"test": None, 'test_2': None, 'test-3': None})

    def testOnlyOneValue(self):
        self.assertEqual(parser.loads('5'), 5)
        self.assertEqual(parser.loads('a'), 'a')
        self.assertEqual(parser.loads('true'), True)

    def testOneArray(self):
        self.assertEqual(parser.loads('- a\n- b'), ['a', 'b'])

    def testIntegerValue(self):
        self.assertEqual(parser.loads("t: 5"), {'t': 5})
    def testSimpleStringValue(self):
        self.assertEqual(parser.loads('t: abcd'), {'t': 'abcd'})
    def testStringValue(self):
        self.assertEqual(parser.loads("t: '5'"), {'t': '5'})
    def testOtherStringValue(self):
        self.assertEqual(parser.loads('t: "5"'), {'t': '5'})
    def testBoolValue(self):
        self.assertEqual(parser.loads("t: false"), {'t': False})
    def testInlineArrayValue(self):
        self.assertEqual(parser.loads("t: [4, 6]"), {'t': [4, 6]})
    def testArrayValue(self):
        self.assertEqual(parser.loads("""
test:
  - a
  - 5
"""), {'test': ['a', 5]})

    def testDoubleDict(self):
        self.assertEqual(parser.loads("""\
a:
  b: c
"""), {'a': {'b': 'c'}})
    def testDoubleDict2(self):
        self.assertEqual(parser.loads("""\
a:
  b:
    c
"""), {'a': {'b': 'c'}})

    def testMultiArray(self):
        self.assertEqual(parser.loads("""\
-
  -
    a:
      b
    c:
      5
  -
    a:
      8
"""), [[{'a':'b', 'c': 5}, {'a': 8}]])

    def testArrayOfDict(self):
        self.assertEqual(parser.loads("""\
- a: b
"""), [{'a':'b'}])