def test_duplicate_yaml_dict_key_ignore(dupe_node, monkeypatch):
    monkeypatch.setattr(C, 'DUPLICATE_YAML_DICT_KEY', 'ignore')
    cap = Capture()
    monkeypatch.setattr(Display(), 'warning', cap)
    ac = AnsibleConstructor()
    ac.construct_mapping(dupe_node)
    assert not cap.called
def test_duplicate_yaml_dict_key_warn(dupe_node, monkeypatch):
    monkeypatch.setattr(C, 'DUPLICATE_YAML_DICT_KEY', 'warn')
    cap = Capture()
    monkeypatch.setattr(Display(), 'warning', cap)
    ac = AnsibleConstructor()
    ac.construct_mapping(dupe_node)
    assert cap.called
    expected = [((
        'While constructing a mapping from tag:yaml.org,2002:map, line 1, column 1, '
        'found a duplicate dict key (bar). Using last defined value only.', ),
                 {})]
    assert cap.calls == expected
예제 #3
0
 def construct_mapping(node, deep=False):
     mapping = AnsibleConstructor.construct_mapping(loader, node, deep=deep)
     if hasattr(node, '__line__'):
         mapping[LINE_NUMBER_KEY] = node.__line__
     else:
         mapping[LINE_NUMBER_KEY] = mapping._line_number
     mapping[FILENAME_KEY] = filename
     return mapping
예제 #4
0
 def construct_mapping(node: AnsibleBaseYAMLObject,
                       deep: bool = False) -> AnsibleMapping:
     mapping = AnsibleConstructor.construct_mapping(loader, node, deep=deep)
     if hasattr(node, '__line__'):
         mapping[LINE_NUMBER_KEY] = node.__line__
     else:
         mapping[LINE_NUMBER_KEY] = mapping._line_number
     mapping[FILENAME_KEY] = lintable.path
     return mapping
예제 #5
0
 def construct_mapping(node, deep=False):
     if ANSIBLE_VERSION < 2:
         mapping = Constructor.construct_mapping(loader, node, deep=deep)
     else:
         mapping = AnsibleConstructor.construct_mapping(loader, node, deep=deep)
     if hasattr(node, '__line__'):
         mapping[LINE_NUMBER_KEY] = node.__line__
     else:
         mapping[LINE_NUMBER_KEY] = mapping._line_number
     mapping[FILENAME_KEY] = filename
     return mapping
예제 #6
0
    def construct_mapping(node, deep=False):
        try:
            mapping = AnsibleConstructor.construct_mapping(loader, node, deep=deep)
        except yaml.constructor.ConstructorError as e:
            raise LaterError("syntax error", e)

        if hasattr(node, "__line__"):
            mapping[LINE_NUMBER_KEY] = node.__line__
        else:
            mapping[LINE_NUMBER_KEY] = mapping._line_number
        mapping[FILENAME_KEY] = filename
        return mapping