import unittest from os import path from lsup_rdf import env_init, term, triple, graph TEST_DIR = path.realpath(path.dirname(__file__)) class TestTerm(unittest.TestCase): def setUp(self): self.s1 = term.Term(term.TERM_IRIREF, "urn:s:1") self.p1 = term.Term(term.TERM_IRIREF, "urn:p:1") self.o1 = term.Term(term.TERM_IRIREF, "urn:o:1") self.s2 = term.Term(term.TERM_IRIREF, "urn:s:2") self.p2 = term.Term(term.TERM_IRIREF, "urn:p:2") self.o2 = term.Term(term.TERM_IRIREF, "urn:o:2") self.s3 = term.Term(term.TERM_IRIREF, "urn:s:3") self.p3 = term.Term(term.TERM_IRIREF, "urn:p:3") self.o3 = term.Term(term.TERM_IRIREF, "urn:o:3") self.trp = [ triple.Triple(self.s1, self.p1, self.o1), triple.Triple(self.s2, self.p2, self.o2), ] self.t3 = triple.Triple(self.s3, self.p3, self.o3) self.t4 = triple.Triple(self.s1, self.p1, self.o1) def test_term(self): s1 = term.Term(term.TERM_IRIREF, "urn:s:1") self.assertTrue(isinstance(s1, term.Term)) self.assertEqual(s1.data, "urn:s:1") self.assertEqual(s1.type, term.TERM_IRIREF) def test_graph(self): gr = graph.Graph(graph.STORE_MEM) gr.uri = term.Term(term.TERM_IRIREF, 'urn:c:1') self.assertEqual(gr.uri, 'urn:c:1') def test_graph_ops(self): gr = graph.Graph(graph.STORE_MEM) print('Adding triples.') gr.add(self.trp) self.assertEqual(len(gr), 2) self.assertTrue(self.trp[0] in gr) self.assertTrue(self.trp[1] in gr) self.assertFalse(self.t3 in gr) self.assertTrue(self.t4 in gr) gr.remove(self.s1, None, None) self.assertFalse(self.trp[0] in gr) self.assertTrue(self.trp[1] in gr) print('Encoded NT:') for line in gr.to_rdf('nt'): print(line) def test_deserialize(self): print('From file.') with open(path.join(TEST_DIR, 'assets', 'test.nt'), 'rb') as fh: gr2 = graph.Graph.from_rdf(fh, 'nt') self.assertTrue(self.trp[0] in gr2) self.assertTrue(self.trp[1] in gr2) if __name__ == '__main__': env_init() unittest.main()