Source code for ewokscore.tests.test_uri

import os
from pathlib import Path
from ewokscore.persistence.uri import parse_uri
from ewokscore.persistence.uri import path_from_uri
from ewokscore.persistence.uri import parse_query


[docs] def test_file_uri(): nonpath = str(Path("file.h5")) relpath = str(Path("relpath") / "file.h5") abspath = str(Path(os.path.sep) / "abspath" / "file.h5") assert not os.path.isabs(nonpath) assert not os.path.isabs(relpath) assert os.path.isabs(abspath) uri = nonpath assert parse_uri(uri).geturl() == "file:///file.h5" assert str(path_from_uri(parse_uri(uri))) == uri assert parse_query(parse_uri(uri)) == dict() uri = relpath assert parse_uri(uri).geturl() == "file:///relpath/file.h5" assert str(path_from_uri(parse_uri(uri))) == uri assert parse_query(parse_uri(uri)) == dict() uri = abspath assert parse_uri(uri).geturl() == "file:///abspath/file.h5" assert str(path_from_uri(parse_uri(uri))) == uri assert parse_query(parse_uri(uri)) == dict() uri = nonpath + "::/entry" assert parse_uri(uri).geturl() == "file:///file.h5?path=/entry" assert str(path_from_uri(parse_uri(uri))) == nonpath assert parse_query(parse_uri(uri)) == {"path": "/entry"} uri = relpath + "::/entry" assert parse_uri(uri).geturl() == "file:///relpath/file.h5?path=/entry" assert str(path_from_uri(parse_uri(uri))) == relpath assert parse_query(parse_uri(uri)) == {"path": "/entry"} uri = abspath + "::/entry" assert parse_uri(uri).geturl() == "file:///abspath/file.h5?path=/entry" assert str(path_from_uri(parse_uri(uri))) == abspath assert parse_query(parse_uri(uri)) == {"path": "/entry"} uri = abspath + "::/entry?name=abc" assert parse_uri(uri).geturl() == "file:///abspath/file.h5?path=/entry&name=abc" assert str(path_from_uri(parse_uri(uri))) == abspath assert parse_query(parse_uri(uri)) == {"path": "/entry", "name": "abc"} uri = abspath + "::/entry?path=xyz&name=abc" assert parse_uri(uri).geturl() == "file:///abspath/file.h5?path=/entry/xyz&name=abc" assert str(path_from_uri(parse_uri(uri))) == abspath assert parse_query(parse_uri(uri)) == {"path": "/entry/xyz", "name": "abc"}