From b31cdfec0a1d875cd31bacf7cb60ae25367da6bb Mon Sep 17 00:00:00 2001 From: Max Dallabetta Date: Mon, 16 Sep 2024 16:20:44 +0200 Subject: [PATCH] add test cases --- tests/test_data.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 tests/test_data.py diff --git a/tests/test_data.py b/tests/test_data.py new file mode 100644 index 00000000..a8165a6e --- /dev/null +++ b/tests/test_data.py @@ -0,0 +1,24 @@ +from typing import Any, Dict, List + +from lxml.etree import XPath + +from fundus.parser.data import LinkedDataMapping + +lds: List[Dict[str, Any]] = [ + {"@type": "Example1", "value": 1, "data": {"inner": "value", "nested": {"dict": True}}}, + {"@type": "Example2", "value": 2, "_:*@": "Howdy"}, + {"this": "should", "be": {"of": "type", "__UNKNOWN_TYPE__": True, "value": 3}}, +] + + +class TestLinkedDataMapping: + def test_constructor(self): + LinkedDataMapping(lds) + + def test_xpath_search(self): + ld = LinkedDataMapping(lds) + assert ld.xpath_search(XPath("//value")) == ["1", "2", "3"] + assert ld.xpath_search(XPath("//UNKNOWN_TYPE//value")) == ["3"] + assert ld.xpath_search(XPath("//_U003AU002AU0040")) == ["Howdy"] + assert ld.xpath_search(XPath("//dict")) == ["True"] + assert ld.xpath_search(XPath("//Example2")) == [{"@type": "Example2", "value": "2", "_:*@": "Howdy"}]