Exemple #1
0
def test_case_parser(config, expected):
    """Test yaml CaseParser."""
    yaml_case_content = """
case_param1:
    full:
        case_param2:
            full: {'a': 2, 'b': 1, 'c': 'content'}
            short: {'y': 0, 'c': ''}
    short:
        case_param2:
            full: {'a': 9, 'b': 5, 'c': ['default']}
            short: {'y': 3, 'c': ''}
            dict: {'a': 9, 'b': 5, 'c': {'default': 'ok'}}

value1: 10
value2: '%(c)s'
case_param2:
    'f.*l': {'value3': 30, 'a': 42, '+c': ['2'], 'c+': ['1']}
    'dict': {'+c': {'default2': 'nok'}}
"""
    d = yaml.load(StringIO(yaml_case_content), e3.yaml.OrderedDictYAMLLoader)
    parse_it = e3.yaml.CaseParser(config).parse(d)
    assert parse_it == expected

    with open('tmp', 'w') as f:
        f.write(yaml_case_content)

    parse_it2 = e3.yaml.load_with_config('tmp', config)
    assert parse_it2 == expected
Exemple #2
0
def test_include():
    """Test yaml !include."""
    with open('1.yaml', 'w') as f:
        f.write('b: !include 2.yaml\n')
        f.write('c: !include %s\n' % os.path.join(os.getcwd(), '2.yaml'))

    with open('2.yaml', 'w') as f:
        f.write('a: 4\n')

    d = e3.yaml.load_ordered('1.yaml')
    assert d == OrderedDict([('b', OrderedDict([('a', 4)])),
                             ('c', OrderedDict([('a', 4)]))])

    with pytest.raises(IOError) as err:
        yaml.load('b: !include foo.yaml\n', e3.yaml.OrderedDictYAMLLoader)
    assert 'No such file or directory' in str(err)
    assert 'foo.yaml' in str(err)
Exemple #3
0
def test_case_parser_object():
    """CaseParser supports any objects."""
    yaml_case_content = """
case_v:
    .*:
        dt: !!python/object/apply:time.gmtime []

result: '%(dt)s'
    """
    d = yaml.load(StringIO(yaml_case_content), e3.yaml.OrderedDictYAMLLoader)
    parse_it = e3.yaml.CaseParser({'v': 'true'}).parse(d)
    assert 'time.struct_time' in parse_it['result']
Exemple #4
0
def test_case_parser_err():
    """Test CaseParser error handling."""
    yaml_case_content = "result: '%(dt)s'"
    d = yaml.load(StringIO(yaml_case_content), e3.yaml.OrderedDictYAMLLoader)
    parse_it = e3.yaml.CaseParser({}).parse(d)
    assert parse_it['result'] == '%(dt)s'