blob: 7f65624004d5d52ba5d71d74321adf69031df2d5 (
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
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
|
#!/usr/bin/python3-dbg
# -*- coding: utf-8 -*-
from chrysacase import ChrysalideTestCase
from pychrysalide.plugins.yaml import YamlReader
import tempfile
class TestYamlReader(ChrysalideTestCase):
"""TestCase for the Yaml reader."""
@classmethod
def setUpClass(cls):
super(TestYamlReader, cls).setUpClass()
cls._simple = tempfile.NamedTemporaryFile()
cls.simple_data = b'''
meta:
id: java_class
endian: be
file-extension: class
xref:
justsolve: Java
pronom: x-fmt/415
'wiki"data': Q2193155
license: CC0-1.0
'''
cls._simple.write(cls.simple_data)
cls._simple.flush()
cls.log('Using temporary file "%s"' % cls._simple.name)
@classmethod
def tearDownClass(cls):
super(TestYamlReader, cls).tearDownClass()
cls.log('Delete file "%s"' % cls._simple.name)
cls._simple.close()
def testSimpleYamlContent(self):
"""Validate simple Yaml content reader."""
reader = YamlReader.new_from_path(self._simple.name)
self.assertIsNotNone(reader)
def _build_node_desc(node, left):
line = node.yaml_line
desc = left + line.key + ':' + (' ' + line.value if line.value else '') + '\n'
for child in node.children:
desc += _build_node_desc(child, left + ' ')
return desc
fulldesc = ''
for rn in reader.tree.root_nodes:
fulldesc += _build_node_desc(rn, '')
self.assertEqual('\n' + fulldesc + '\n', self.simple_data.decode('ascii'))
def testSimpleYamlContentFinder(self):
"""Validate simple Yaml content search."""
reader = YamlReader.new_from_path(self._simple.name)
self.assertIsNotNone(reader)
found = reader.tree.find_node_by_path('/meta/xref')
self.assertEqual(found.yaml_line.key, 'xref')
found = reader.tree.find_node_by_path('/meta/xref/')
self.assertEqual(found.yaml_line.key, 'xref')
found = reader.tree.find_node_by_path('/meta/xref/aa')
self.assertIsNone(found)
|