summaryrefslogtreecommitdiff
path: root/test/utils/literal.py
blob: 1b3f37988c25d9acba9e6dcb673a501807ff372f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from __future__ import annotations

import builtins
from dataclasses import dataclass
from typing import Any, Union

from rdflib.term import Literal, URIRef


@dataclass
class LiteralChecker:
    value: Union[builtins.ellipsis, Any] = ...
    language: Union[builtins.ellipsis, str, None] = ...
    datatype: Union[builtins.ellipsis, URIRef, None] = ...
    ill_typed: Union[builtins.ellipsis, bool, None] = ...
    lexical: Union[builtins.ellipsis, str] = ...

    def check(self, actual: Literal) -> None:
        if self.value is not Ellipsis:
            assert self.value == actual.value
        if self.lexical is not Ellipsis:
            assert self.lexical == f"{actual}"
        if self.ill_typed is not Ellipsis:
            assert self.ill_typed == actual.ill_typed
        if self.language is not Ellipsis:
            assert self.language == actual.language
        if self.datatype is not Ellipsis:
            assert self.datatype == actual.datatype