summaryrefslogtreecommitdiff
path: root/test/test_parsers/test_broken_parse_data_from_jena.py
blob: 0c9deb4ea3f7447befda53aa9562479ee3e0ab6b (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
29
30
31
32
33
34
35
36
37
38
39
import os
from test.data import TEST_DATA_DIR

import pytest

import rdflib

# Recovered from
# https://github.com/RDFLib/rdflib/tree/6b4607018ebf589da74aea4c25408999f1acf2e2

broken_parse_data = os.path.join(TEST_DATA_DIR, "broken_parse_test")


@pytest.fixture
def xfail_broken_parse_data(request):
    fname = request.getfixturevalue("testfile")

    expected_failures = [
        "n3-writer-test-02.n3",
        "n3-writer-test-25.n3",
        "rdf-test-01.n3",
        "rdf-test-08.n3",
        "rdf-test-10.n3",
        "rdf-test-24.n3",
    ]

    if fname in expected_failures:
        request.node.add_marker(
            pytest.mark.xfail(reason=f"Expected failure with {fname}")
        )


@pytest.mark.parametrize("testfile", os.listdir(broken_parse_data))
@pytest.mark.usefixtures("xfail_broken_parse_data")
def test_n3_serializer_roundtrip(testfile) -> None:

    g1 = rdflib.ConjunctiveGraph()

    g1.parse(os.path.join(broken_parse_data, testfile), format="n3")