summaryrefslogtreecommitdiff
path: root/tests/plugins/yamlrdr.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/plugins/yamlrdr.py')
-rw-r--r--tests/plugins/yamlrdr.py261
1 files changed, 0 insertions, 261 deletions
diff --git a/tests/plugins/yamlrdr.py b/tests/plugins/yamlrdr.py
deleted file mode 100644
index dbd9651..0000000
--- a/tests/plugins/yamlrdr.py
+++ /dev/null
@@ -1,261 +0,0 @@
-#!/usr/bin/python3-dbg
-# -*- coding: utf-8 -*-
-
-
-from chrysacase import ChrysalideTestCase
-from pychrysalide.plugins.yaml import YamlReader
-
-
-class TestYamlReader(ChrysalideTestCase):
- """TestCase for the Yaml reader."""
-
-
- @classmethod
- def setUpClass(cls):
-
- super(TestYamlReader, cls).setUpClass()
-
- cls._simple_map_data = '''
-a: av
-b: bv
-c: cv
-
-'''
-
- cls._simple_seq_data = '''
-- a: av
-- b: bv
-- c: cv
-
-'''
-
- cls._nested_data = '''
-root:
- a: v0
- b: v1
- c: v2
- sub:
- aa: v00
- bb: v01
- cc: v02
- - i: w
- - j: x
- - k: c
- d: v3
-
-'''
-
- cls._mixed_data = '''
-root:
- - a: av
- aa: aav
- ab: abv
- - b: bv
- ba: bav
- bb: bbv
-
-'''
-
-
- def testSimpleYamlContent(self):
- """Validate Yaml content readers."""
-
- def _build_node_desc(node, left, extra = ''):
-
- if hasattr(node, 'key'):
-
- line = node.yaml_line
-
- prefix = '- ' if line.is_list_item else extra
- desc = left + prefix + line.key + ':' + (' ' + line.value if line.value else '') + '\n'
- indent = ' '
-
- collec = node.collection
-
- else:
-
- desc = ''
- indent = ''
-
- if hasattr(node, 'nodes'):
- collec = node
-
- if collec:
-
- if collec.is_sequence:
- extra = ' '
-
- for child in collec.nodes:
- desc += _build_node_desc(child, left + indent, extra)
-
- return desc
-
-
- reader = YamlReader(text=self._simple_map_data)
- self.assertIsNotNone(reader)
- self.assertIsNotNone(reader.tree)
-
- fulldesc = _build_node_desc(reader.tree.root, '')
-
- self.assertEqual('\n' + fulldesc + '\n', self._simple_map_data)
-
- reader = YamlReader(text=self._simple_seq_data)
- self.assertIsNotNone(reader)
- self.assertIsNotNone(reader.tree)
-
- fulldesc = _build_node_desc(reader.tree.root, '')
-
- self.assertEqual('\n' + fulldesc + '\n', self._simple_seq_data)
-
- reader = YamlReader(text=self._nested_data)
- self.assertIsNotNone(reader)
- self.assertIsNotNone(reader.tree)
-
- fulldesc = _build_node_desc(reader.tree.root, '')
-
- self.assertEqual('\n' + fulldesc + '\n', self._nested_data)
-
- reader = YamlReader(text=self._mixed_data)
- self.assertIsNotNone(reader)
- self.assertIsNotNone(reader.tree)
-
- fulldesc = _build_node_desc(reader.tree.root, '')
-
- self.assertEqual('\n' + fulldesc + '\n', self._mixed_data)
-
-
- def testSimpleYamlContentFinder(self):
- """Validate Yaml nested content search."""
-
- reader = YamlReader(text=self._nested_data)
- self.assertIsNotNone(reader)
-
- found = reader.tree.find_by_path('/root/sub')
-
- self.assertEqual(len(found), 1)
-
- if len(found) == 1:
- self.assertEqual(found[0].key, 'sub')
-
- found = reader.tree.find_by_path('/root/sub/')
-
- self.assertEqual(len(found), 3)
-
- found = reader.tree.find_by_path('/root/sub/xx')
-
- self.assertEqual(len(found), 0)
-
- found = reader.tree.find_by_path('/root/sub/cc/i')
-
- self.assertEqual(len(found), 1)
-
- if len(found) == 1:
- self.assertEqual(found[0].key, 'i')
- self.assertEqual(found[0].yaml_line.is_list_item, True)
-
- found = reader.tree.find_by_path('/root/sub/cc')
-
- self.assertEqual(len(found), 1)
-
- if len(found) == 1:
-
- root = found[0]
-
- found = root.find_by_path('cc/i')
-
- self.assertEqual(len(found), 1)
-
- if len(found) == 1:
-
- self.assertEqual(found[0].key, 'i')
- self.assertEqual(found[0].yaml_line.is_list_item, True)
-
- found = root.find_by_path('/cc/i')
-
- self.assertEqual(len(found), 1)
-
- if len(found) == 1:
-
- self.assertEqual(found[0].key, 'i')
- self.assertEqual(found[0].yaml_line.is_list_item, True)
-
- found = root.find_by_path('//i')
-
- self.assertEqual(len(found), 1)
-
- if len(found) == 1:
-
- self.assertEqual(found[0].key, 'i')
- self.assertEqual(found[0].yaml_line.is_list_item, True)
-
-
- def testMixedYamlContentFinder(self):
- """Validate Yaml mixed content search."""
-
- reader = YamlReader(text=self._mixed_data)
- self.assertIsNotNone(reader)
-
- found = reader.tree.find_by_path('/root')
-
- self.assertEqual(len(found), 1)
-
- if len(found) == 1:
- self.assertEqual(found[0].key, 'root')
-
- found = reader.tree.find_by_path('/root/', True)
-
- self.assertEqual(len(found), 1)
-
- found = reader.tree.find_one_by_path('/root/', True)
-
- self.assertIsNotNone(found)
-
- if found:
-
- sub = found.find_one_by_path('/a')
- self.assertIsNotNone(sub)
- self.assertEqual(sub.key, 'a')
-
- sub = found.find_one_by_path('/aa')
- self.assertIsNotNone(sub)
- self.assertEqual(sub.key, 'aa')
-
- found = reader.tree.find_by_path('/root/')
-
- self.assertEqual(len(found), 2)
-
- if len(found) == 2:
-
- sub = found[0].find_one_by_path('/a')
- self.assertIsNotNone(sub)
- self.assertEqual(sub.key, 'a')
-
- sub = found[0].find_one_by_path('/aa')
- self.assertIsNotNone(sub)
- self.assertEqual(sub.key, 'aa')
-
-
- def testItemsWithoutValue(self):
- """Find items without values."""
-
- from pychrysalide import core
- core.set_verbosity(5)
-
- data = '''
-vals:
- - 1
- - 2
- - 3
-
-'''
-
- reader = YamlReader(text=data)
- self.assertIsNotNone(reader)
-
- found = reader.tree.find_by_path('/vals/')
-
- self.assertEqual(len(found), 3)
-
- self.assertEqual(found[0].nodes[0].key, '1')
- self.assertEqual(found[1].nodes[0].key, '2')
- self.assertEqual(found[2].nodes[0].key, '3')