Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_error_noisy_nonexit(self, capsys):
args = SimpleNamespace(verbose=False, quiet=False, debug=False)
logger = ConsolePrinter(args)
logger.error("Test")
console = capsys.readouterr()
assert console.err == "ERROR: Test\n"
def test_critical_quiet(self, capsys):
args = SimpleNamespace(verbose=False, quiet=True, debug=False)
logger = ConsolePrinter(args)
with pytest.raises(SystemExit):
logger.critical("Test")
console = capsys.readouterr()
assert console.err == "CRITICAL: Test\n"
def test_info_quiet(self, capsys):
args = SimpleNamespace(verbose=False, quiet=True, debug=False)
logger = ConsolePrinter(args)
logger.info("Test")
console = capsys.readouterr()
assert not console.out
def test_debug_noisy(self, capsys):
args = SimpleNamespace(verbose=False, quiet=False, debug=True)
logger = ConsolePrinter(args)
anchoredkey = PlainScalarString("TestKey", anchor="KeyAnchor")
anchoredval = PlainScalarString("TestVal", anchor="Anchor")
logger.debug(anchoredval)
console = capsys.readouterr()
assert "\n".join([
"DEBUG: TestVal; &Anchor",
]) + "\n" == console.out
logger.debug(["test", anchoredval])
console = capsys.readouterr()
assert "\n".join([
"DEBUG: [0]=test ",
"DEBUG: [1]=TestVal; &Anchor ",
]) + "\n" == console.out
def test_debug_quiet(self, capsys):
args = SimpleNamespace(verbose=False, quiet=True, debug=True)
logger = ConsolePrinter(args)
logger.debug("Test")
console = capsys.readouterr()
assert not console.out
def test_uphappy_str_path_translations(parser, yaml_path):
with pytest.raises(YAMLPathException):
parser.str_path(yaml_path)
def yamlpath(quiet_logger):
"""Returns a YAMLPath with a quiet logger."""
return YAMLPath(quiet_logger)
def test_get_nodes_by_unknown_path_segment_error(self, quiet_logger):
from collections import deque
from enum import Enum
from yamlpath.enums import PathSegmentTypes
names = [m.name for m in PathSegmentTypes] + ['DNF']
PathSegmentTypes = Enum('PathSegmentTypes', names)
yamldata = """---
key: value
"""
yaml = YAML()
data = yaml.load(yamldata)
processor = Processor(quiet_logger, data)
path = YAMLPath("abc")
stringified = str(path) # Force Path to parse
path._escaped = deque([
(PathSegmentTypes.DNF, "abc"),
])
with pytest.raises(NotImplementedError):
nodes = list(processor._get_nodes_by_path_segment(data, path, 0))
def test_anchorless_list_element_error(self):
with pytest.raises(ValueError) as ex:
append_list_element({}, YAMLPath("foo"), "bar")
assert -1 < str(ex.value).find("Impossible to add an Anchor")
def test_non_int_array_index_error(self, quiet_logger):
from collections import deque
yamldata = """---
- 1
"""
yaml = YAML()
data = yaml.load(yamldata)
path = YAMLPath("[0]")
processor = Processor(quiet_logger, data)
strp = str(path)
path._escaped = deque([
(PathSegmentTypes.INDEX, "0F"),
])
path._unescaped = deque([
(PathSegmentTypes.INDEX, "0F"),
])
with pytest.raises(YAMLPathException) as ex:
nodes = list(processor._get_nodes_by_index(data, path, 0))
assert -1 < str(ex.value).find("is not an integer array index")