diff --git a/tests/end2end/fixtures/quteprocess.py b/tests/end2end/fixtures/quteprocess.py index c62de1dc9..0b5f683cc 100644 --- a/tests/end2end/fixtures/quteprocess.py +++ b/tests/end2end/fixtures/quteprocess.py @@ -784,13 +784,8 @@ class QuteProc(testprocess.Process): be compared. """ __tracebackhide__ = lambda e: e.errisinstance(pytest.fail.Exception) - # Translate ... to ellipsis in YAML. - loader = yaml.SafeLoader(expected) - loader.add_constructor('!ellipsis', lambda loader, node: ...) - loader.add_implicit_resolver('!ellipsis', re.compile(r'\.\.\.'), None) - data = self.get_session() - expected = loader.get_data() + expected = yaml.load(expected, Loader=YamlLoader) outcome = testutils.partial_compare(data, expected) if not outcome: msg = "Session comparison failed: {}".format(outcome.error) @@ -798,6 +793,18 @@ class QuteProc(testprocess.Process): pytest.fail(msg) +class YamlLoader(yaml.SafeLoader): + + """Custom YAML loader used in compare_session.""" + + pass + + +# Translate ... to ellipsis in YAML. +YamlLoader.add_constructor('!ellipsis', lambda loader, node: ...) +YamlLoader.add_implicit_resolver('!ellipsis', re.compile(r'\.\.\.'), None) + + def _xpath_escape(text): """Escape a string to be used in an XPath expression.