cpython_test.py 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. import unittest
  2. from os import path
  3. from lsup_rdf import env_init, term, triple, graph
  4. from lsup_rdf.term import IRIRef, Literal, LTLiteral, BNode
  5. TEST_DIR = path.realpath(path.dirname(__file__))
  6. class TestTerm(unittest.TestCase):
  7. def setUp(self):
  8. self.s1 = IRIRef("urn:s:1")
  9. self.p1 = IRIRef("urn:p:1")
  10. self.o1 = IRIRef("urn:o:1")
  11. self.s2 = IRIRef("urn:s:2")
  12. self.p2 = IRIRef("urn:p:2")
  13. self.o2 = IRIRef("urn:o:2")
  14. self.s3 = IRIRef("urn:s:3")
  15. self.p3 = IRIRef("urn:p:3")
  16. self.o3 = IRIRef("urn:o:3")
  17. self.trp = [
  18. triple.Triple(self.s1, self.p1, self.o1),
  19. triple.Triple(self.s2, self.p2, self.o2),
  20. ]
  21. self.t3 = triple.Triple(self.s3, self.p3, self.o3)
  22. self.t4 = triple.Triple(self.s1, self.p1, self.o1)
  23. def test_iriref(self):
  24. uri = IRIRef("urn:s:1")
  25. self.assertTrue(isinstance(uri, term.Term))
  26. self.assertEqual(uri.data, 'urn:s:1')
  27. self.assertEqual(uri._type, term.TERM_IRIREF)
  28. self.assertFalse(hasattr(uri, 'datatype'))
  29. self.assertFalse(hasattr(uri, 'lang'))
  30. def test_literal(self):
  31. lit = Literal('Hello')
  32. self.assertTrue(isinstance(lit, term.Term))
  33. self.assertEqual(lit.data, 'Hello')
  34. self.assertEqual(lit._type, term.TERM_LITERAL)
  35. self.assertEqual(
  36. lit.datatype, 'http://www.w3.org/2001/XMLSchema#string')
  37. self.assertFalse(hasattr(lit, 'lang'))
  38. def test_lt_literal(self):
  39. lt_lit = LTLiteral('Hola', 'es-ES')
  40. self.assertTrue(isinstance(lt_lit, term.Term))
  41. self.assertEqual(lt_lit.data, 'Hola')
  42. self.assertEqual(lt_lit._type, term.TERM_LT_LITERAL)
  43. self.assertEqual(
  44. lt_lit.datatype, 'http://www.w3.org/2001/XMLSchema#string')
  45. self.assertEqual(lt_lit.lang, 'es-ES')
  46. def test_bnode(self):
  47. bn = BNode('1234')
  48. self.assertTrue(isinstance(bn, term.Term))
  49. self.assertEqual(bn.data, '1234')
  50. self.assertEqual(bn._type, term.TERM_BNODE)
  51. self.assertFalse(hasattr(bn, 'datatype'))
  52. self.assertFalse(hasattr(bn, 'lang'))
  53. def test_graph(self):
  54. gr = graph.Graph(graph.STORE_MEM)
  55. gr.uri = term.Term(term.TERM_IRIREF, 'urn:c:1')
  56. self.assertEqual(gr.uri, 'urn:c:1')
  57. def test_graph_ops(self):
  58. gr = graph.Graph(graph.STORE_MEM)
  59. print('Adding triples.')
  60. gr.add(self.trp)
  61. self.assertEqual(len(gr), 2)
  62. self.assertTrue(self.trp[0] in gr)
  63. self.assertTrue(self.trp[1] in gr)
  64. self.assertFalse(self.t3 in gr)
  65. self.assertTrue(self.t4 in gr)
  66. gr.remove(self.s1, None, None)
  67. self.assertFalse(self.trp[0] in gr)
  68. self.assertTrue(self.trp[1] in gr)
  69. print('Encoded NT:')
  70. for line in gr.to_rdf('nt'):
  71. print(line)
  72. def test_deserialize(self):
  73. print('From file.')
  74. with open(path.join(TEST_DIR, 'assets', 'test.nt'), 'rb') as fh:
  75. gr2 = graph.Graph.from_rdf(fh, 'nt')
  76. self.assertTrue(self.trp[0] in gr2)
  77. self.assertTrue(self.trp[1] in gr2)
  78. if __name__ == '__main__':
  79. env_init()
  80. unittest.main()