aboutsummaryrefslogtreecommitdiffstats
path: root/test/serd_test_util
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2023-03-27 15:42:27 -0400
committerDavid Robillard <d@drobilla.net>2023-04-05 09:41:43 -0400
commite970e63146fb5d8de511104eba7aef5319e8653b (patch)
tree9f8e24335b84012ec0473e62301f37491c31cdb9 /test/serd_test_util
parent68c1a2e677775e489cff4beb38ef17c1efeae4e3 (diff)
downloadserd-e970e63146fb5d8de511104eba7aef5319e8653b.tar.gz
serd-e970e63146fb5d8de511104eba7aef5319e8653b.tar.bz2
serd-e970e63146fb5d8de511104eba7aef5319e8653b.zip
Add pretty-printing test suite
The earlier "test" was just hitting the code without actually checking the output. This new suite is a set of pretty-printed documents which serd must reproduce exactly to pass. This should make it easy to add cases in the future, since each case is just a document, as it should look.
Diffstat (limited to 'test/serd_test_util')
-rw-r--r--test/serd_test_util/__init__.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/serd_test_util/__init__.py b/test/serd_test_util/__init__.py
index 844c454c..7482762d 100644
--- a/test/serd_test_util/__init__.py
+++ b/test/serd_test_util/__init__.py
@@ -71,6 +71,25 @@ def uri_path(uri):
return path if not drive else path[1:]
+def file_path(suite_dir, uri):
+ """Return a relative path to a file in a test suite."""
+
+ return os.path.relpath(os.path.join(suite_dir, os.path.basename(uri)))
+
+
+def syntax_from_path(path):
+ """Return the serd syntax name corresponding to a file path."""
+
+ extensions = {
+ ".ttl": "turtle",
+ ".nt": "ntriples",
+ ".trig": "trig",
+ ".nq": "nquads",
+ }
+
+ return extensions[os.path.splitext(path)[1]]
+
+
def earl_assertion(test, passed, asserter):
"""Return a Turtle description of an assertion for the test report."""