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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
import unittest
from rdflib import ConjunctiveGraph, URIRef, Namespace
TEST_BASE = "test/nquads.rdflib"
class NQuadsParserTest(unittest.TestCase):
def _load_example(self):
g = ConjunctiveGraph()
with open("test/nquads.rdflib/example.nquads", "rb") as data:
g.parse(data, format="nquads")
return g
def test_01_simple_open(self):
g = self._load_example()
assert len(g.store) == 449
def test_02_contexts(self):
# There should be 16 separate contexts
g = self._load_example()
assert len([x for x in g.store.contexts()]) == 16
def test_03_get_value(self):
# is the name of entity E10009 "Arco Publications"?
# (in graph http://bibliographica.org/entity/E10009)
# Looking for:
# <http://bibliographica.org/entity/E10009>
# <http://xmlns.com/foaf/0.1/name>
# "Arco Publications"
# <http://bibliographica.org/entity/E10009>
g = self._load_example()
s = URIRef("http://bibliographica.org/entity/E10009")
FOAF = Namespace("http://xmlns.com/foaf/0.1/")
self.assertTrue(g.value(s, FOAF.name).eq("Arco Publications"))
def test_context_is_optional(self):
g = ConjunctiveGraph()
with open("test/nquads.rdflib/test6.nq", "rb") as data:
g.parse(data, format="nquads")
assert len(g) > 0
def test_serialize(self):
g = ConjunctiveGraph()
uri1 = URIRef("http://example.org/mygraph1")
uri2 = URIRef("http://example.org/mygraph2")
bob = URIRef(u"urn:bob")
likes = URIRef(u"urn:likes")
pizza = URIRef(u"urn:pizza")
g.get_context(uri1).add((bob, likes, pizza))
g.get_context(uri2).add((bob, likes, pizza))
s = g.serialize(format="nquads")
self.assertEqual(
len([x for x in s.split("\n".encode("latin-1")) if x.strip()]), 2
)
g2 = ConjunctiveGraph()
g2.parse(data=s, format="nquads")
self.assertEqual(len(g), len(g2))
self.assertEqual(
sorted(x.identifier for x in g.contexts()),
sorted(x.identifier for x in g2.contexts()),
)
if __name__ == "__main__":
unittest.main()
|