1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

Adding tests for new yaml parsing stuff and adjusting imports

This commit is contained in:
James Cammarata 2014-10-07 15:52:58 -05:00
parent 8ab0749217
commit 93e273333d
6 changed files with 75 additions and 4 deletions

View file

View file

@ -0,0 +1,2 @@
# TODO: header

View file

@ -0,0 +1,69 @@
# TODO: header
import unittest
from ansible.parsing.yaml import safe_load
from ansible.parsing.yaml.objects import AnsibleMapping
# a single dictionary instance
data1 = '''---
key: value
'''
# multiple dictionary instances
data2 = '''---
- key1: value1
- key2: value2
- key3: value3
- key4: value4
'''
# multiple dictionary instances with other nested
# dictionaries contained within those
data3 = '''---
- key1:
subkey1: subvalue1
subkey2: subvalue2
subkey3:
subsubkey1: subsubvalue1
- key2:
subkey4: subvalue4
- list1:
- list1key1: list1value1
list1key2: list1value2
list1key3: list1value3
'''
class TestSafeLoad(unittest.TestCase):
def setUp(self):
pass
def tearDown(self):
pass
def test_safe_load(self):
# test basic dictionary
res = safe_load(data1)
assert type(res) == AnsibleMapping
assert res._line_number == 2
# test data with multiple dictionaries
res = safe_load(data2)
assert len(res) == 4
assert res[0]._line_number == 2
assert res[1]._line_number == 3
assert res[2]._line_number == 5
assert res[3]._line_number == 8
# test data with multiple sub-dictionaries
res = safe_load(data3)
assert len(res) == 3
assert res[0]._line_number == 2
assert res[1]._line_number == 7
assert res[2]._line_number == 9
assert res[0]['key1']._line_number == 3
assert res[1]['key2']._line_number == 8
assert res[2]['list1'][0]._line_number == 10

View file

@ -1,5 +1,5 @@
from yaml import load
from parsing.yaml.loader import AnsibleLoader
from ansible.parsing.yaml.loader import AnsibleLoader
def safe_load(stream):
''' implements yaml.safe_load(), except using our custom loader class '''

View file

@ -1,5 +1,5 @@
from yaml.constructor import Constructor
from parsing.yaml.objects import AnsibleMapping
from ansible.parsing.yaml.objects import AnsibleMapping
class AnsibleConstructor(Constructor):
def construct_yaml_map(self, node):

View file

@ -3,8 +3,8 @@ from yaml.scanner import Scanner
from yaml.parser import Parser
from yaml.resolver import Resolver
from parsing.yaml.composer import AnsibleComposer
from parsing.yaml.constructor import AnsibleConstructor
from ansible.parsing.yaml.composer import AnsibleComposer
from ansible.parsing.yaml.constructor import AnsibleConstructor
class AnsibleLoader(Reader, Scanner, Parser, AnsibleComposer, AnsibleConstructor, Resolver):
def __init__(self, stream):