diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/meson.build | 11 | ||||
-rwxr-xr-x | test/test_contextual.py | 51 |
2 files changed, 62 insertions, 0 deletions
diff --git a/test/meson.build b/test/meson.build index 1f736afc..6bb0e033 100644 --- a/test/meson.build +++ b/test/meson.build @@ -19,6 +19,7 @@ simple_script_paths = [ 'run_filter_suite.py', 'run_suite.py', 'test_base.py', + 'test_contextual.py', 'test_empty.py', 'test_multifile.py', 'test_patterns.py', @@ -446,6 +447,16 @@ if is_variable('serd_pipe') suite: 'io', ) endif + + # Write options + + test( + 'contextual', + files('test_contextual.py'), + args: pipe_script_args + files('../serd.ttl'), + env: test_env, + suite: ['tools', 'pipe', 'output'], + ) endif # Test specifics to serd-filter diff --git a/test/test_contextual.py b/test/test_contextual.py new file mode 100755 index 00000000..6a584c5b --- /dev/null +++ b/test/test_contextual.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python3 + +# Copyright 2022 David Robillard <d@drobilla.net> +# SPDX-License-Identifier: ISC + +"""Test writing with -O contextual (SERD_WRITE_CONTEXTUAL).""" + +# pylint: disable=consider-using-f-string + +import argparse +import sys +import shlex +import subprocess +import tempfile + +parser = argparse.ArgumentParser(description=__doc__) + +parser.add_argument("--tool", default="tools/serd-pipe", help="executable") +parser.add_argument("--wrapper", default="", help="executable wrapper") +parser.add_argument("input", default="", help="input file") + +args = parser.parse_args(sys.argv[1:]) +command = shlex.split(args.wrapper) + [ + args.tool, + "-O", + "turtle", + "-O", + "contextual", + args.input, +] + +DOC = "<{0}s> <{0}p> <{0}o> .".format("http://example.org/") + +with tempfile.TemporaryFile() as out: + proc = subprocess.run( + command, + check=False, + encoding="utf-8", + input=DOC, + stdout=out, + stderr=subprocess.PIPE, + ) + + assert proc.returncode == 0 + assert args.wrapper or len(proc.stderr) == 0 + + out.seek(0) + lines = out.readlines() + + for line in lines: + assert "@prefix" not in line.decode("utf-8") |