예제 #1
0
 def test_3(self):
     '''test that sequence_node_from_tokens works with more than one item'''
     self.assertEqual(
         sequence_node_from_tokens(tokens=[
             SequenceStart(),
             ScalarValue(data='value'),
             Delimiter(),
             ScalarValue(data='value'),
             SequenceEnd(),
         ],
                                   start=0),
         (SequenceNode(
             items=[ScalarNode(data='value'),
                    ScalarNode(data='value')]), 5))
예제 #2
0
 def test_1(self):
     '''test that mapping_node_from_tokens works for the simplest case'''
     self.assertEqual(
         mapping_node_from_tokens(tokens=[
             MappingStart(),
             ScalarValue(data='key'),
             Separator(),
             ScalarValue(data='value'),
             MappingEnd(),
         ],
                                  start=0),
         (MappingNode(
             mapping={ScalarNode(data='key'): ScalarNode(data='value')}),
          5))
예제 #3
0
def scalar_node_from_tokens(tokens: List['Token'],
                            start: int) -> Tuple['ScalarNode', int]:
    if start >= len(tokens):
        raise Exception('start is pass the number of tokens')
    if not isinstance(tokens[start], ScalarValue):
        raise Exception('Trying to get a scalar node from a non-scalar node')
    return ScalarNode(data=tokens[start].data), start + 1  # type: ignore
예제 #4
0
 def test_5(self):
     '''test that sequence_node_from_tokens works with it contains a mapping'''
     self.assertEqual(
         sequence_node_from_tokens(tokens=[
             SequenceStart(),
             MappingStart(),
             ScalarValue(data='key'),
             Separator(),
             ScalarValue(data='value'),
             MappingEnd(),
             SequenceEnd(),
         ],
                                   start=0),
         (SequenceNode(items=[
             MappingNode(
                 mapping={ScalarNode(data='key'): ScalarNode(data='value')})
         ]), 7))
예제 #5
0
 def test_4(self):
     '''test that mapping_node_from_tokens works when the value is a sequence'''
     self.assertEqual(
         mapping_node_from_tokens(tokens=[
             MappingStart(),
             ScalarValue(data='key'),
             Separator(),
             SequenceStart(),
             ScalarValue(data='value'),
             SequenceEnd(),
             MappingEnd(),
         ],
                                  start=0),
         (MappingNode(
             mapping={
                 ScalarNode(data='key'):
                 SequenceNode(items=[ScalarNode(data='value')]),
             }), 7))
예제 #6
0
 def test_to_object(self):
     value = 'value string'
     node = ScalarNode(data=value)
     expectedObject = value
     self.assertEqual(
         object_from_node(
             node
         ),  # sigh. I can't use keyword arguments with singledispatch functions
         expectedObject)
예제 #7
0
 def test_1(self):
     '''test that sequence_node_from_tokens works for the simplest case'''
     self.assertEqual(
         sequence_node_from_tokens(tokens=[
             SequenceStart(),
             ScalarValue(data='value'),
             SequenceEnd(),
         ],
                                   start=0),
         (SequenceNode(items=[ScalarNode(data='value')]), 3))
예제 #8
0
 def test_2(self):
     '''test that mapping_node_from_tokens works when there are two items'''
     self.assertEqual(
         mapping_node_from_tokens(tokens=[
             MappingStart(),
             ScalarValue(data='key'),
             Separator(),
             ScalarValue(data='value'),
             Delimiter(),
             ScalarValue(data='key1'),
             Separator(),
             ScalarValue(data='value'),
             MappingEnd(),
         ],
                                  start=0),
         (MappingNode(
             mapping={
                 ScalarNode(data='key'): ScalarNode(data='value'),
                 ScalarNode(data='key1'): ScalarNode(data='value'),
             }), 9))
예제 #9
0
 def test_4(self):
     '''test that sequence_node_from_tokens works with there is a nested sequence'''
     self.assertEqual(
         sequence_node_from_tokens(tokens=[
             SequenceStart(),
             SequenceStart(),
             ScalarValue(data='value'),
             SequenceEnd(),
             SequenceEnd(),
         ],
                                   start=0),
         (SequenceNode(
             items=[SequenceNode(items=[ScalarNode(data='value')])]), 5))
예제 #10
0
 def test_3(self):
     '''test that mapping_node_from_tokens works when there is a nested mapping'''
     self.assertEqual(
         mapping_node_from_tokens(tokens=[
             MappingStart(),
             ScalarValue(data='key'),
             Separator(),
             MappingStart(),
             ScalarValue(data='key1'),
             Separator(),
             ScalarValue(data='value'),
             MappingEnd(),
             MappingEnd(),
         ],
                                  start=0),
         (MappingNode(
             mapping={
                 ScalarNode(data='key'):
                 MappingNode(
                     mapping={
                         ScalarNode(data='key1'): ScalarNode(data='value')
                     }),
             }), 9))
예제 #11
0
 def test_scalar_node_from_tokens(self):
     self.assertEqual(
         scalar_node_from_tokens(tokens=[ScalarValue(data='value')],
                                 start=0),
         (ScalarNode(data='value'), 1),
     )
예제 #12
0
 def test_to_object(self):
     mapping = {ScalarNode(data='key'): ScalarNode(data='value')}
     node = MappingNode(mapping=mapping)
     expectedObject = {'key': 'value'}
     self.assertEqual(object_from_node(node), expectedObject)
예제 #13
0
 def test_to_object(self):
     items = [ScalarNode(data='value')]
     node = SequenceNode(items=items)
     expectedObject = ['value']
     self.assertEqual(object_from_node(node), expectedObject)