From df975efcd35604b0799e3c552b1f3de21a4425d0 Mon Sep 17 00:00:00 2001 From: Val Lorentz Date: Sun, 21 May 2023 14:33:53 +0200 Subject: [PATCH] Add tests for field id clashes --- glowtables/tests/table_test.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/glowtables/tests/table_test.py b/glowtables/tests/table_test.py index a173f4b..b8af124 100644 --- a/glowtables/tests/table_test.py +++ b/glowtables/tests/table_test.py @@ -14,6 +14,7 @@ import textwrap +import pytest import rdflib from glowtables.table import Language, LiteralField, Table @@ -90,3 +91,35 @@ def test_default_value() -> None: } """ ) + + +def test_field_id_subject() -> None: + name_field = LiteralField( + "subject", + {Language("en"): "Name"}, + rdflib.URIRef("http://example.org/display-name"), + ) + with pytest.raises(ValueError, match="both subject and a field id"): + Table( + fields=[name_field], + constraints="", + ) + + +def test_field_id_clash() -> None: + name_field = LiteralField( + "name", + {Language("en"): "Name"}, + rdflib.URIRef("http://example.org/name"), + ) + display_name_field = LiteralField( + "name", + {Language("en"): "Display Name"}, + rdflib.URIRef("http://example.org/display-name"), + ) + with pytest.raises(ValueError, match="has duplicate field ids: name"): + Table( + fields=[name_field, display_name_field], + constraints="", + ) +