4 from datetime import datetime
6 from htsworkflow.util.rdfhelp import \
15 class TestRDFHelp(unittest.TestCase):
16 def test_typed_node_boolean(self):
17 node = toTypedNode(True)
18 self.failUnlessEqual(node.literal_value['string'], u'1')
19 self.failUnlessEqual(str(node.literal_value['datatype']),
20 'http://www.w3.org/2001/XMLSchema#boolean')
22 def test_typed_node_string(self):
23 node = toTypedNode('hello')
24 self.failUnlessEqual(node.literal_value['string'], u'hello')
25 self.failUnless(node.literal_value['datatype'] is None)
27 def test_blank_or_uri_blank(self):
29 self.failUnlessEqual(node.is_blank(), True)
31 def test_blank_or_uri_url(self):
32 s = 'http://google.com'
34 self.failUnlessEqual(node.is_resource(), True)
35 self.failUnlessEqual(str(node.uri), s)
37 def test_blank_or_uri_node(self):
38 s = RDF.Node(RDF.Uri('http://google.com'))
40 self.failUnlessEqual(node.is_resource(), True)
41 self.failUnlessEqual(node, s)
43 def test_unicode_node_roundtrip(self):
45 roundtrip = fromTypedNode(toTypedNode(literal))
46 self.failUnlessEqual(roundtrip, literal)
47 self.failUnlessEqual(type(roundtrip), types.UnicodeType)
49 def test_datetime_no_microsecond(self):
50 dateTimeType = xsdNS['dateTime'].uri
51 short_isostamp = '2011-12-20T11:44:25'
52 short_node = RDF.Node(literal=short_isostamp,
53 datatype=dateTimeType)
54 short_datetime = datetime(2011,12,20,11,44,25)
56 self.assertEqual(fromTypedNode(short_node), short_datetime)
57 self.assertEqual(toTypedNode(short_datetime), short_node)
58 self.assertEqual(fromTypedNode(toTypedNode(short_datetime)),
61 def test_datetime_with_microsecond(self):
62 dateTimeType = xsdNS['dateTime'].uri
63 long_isostamp = '2011-12-20T11:44:25.081776'
64 long_node = RDF.Node(literal=long_isostamp,
65 datatype=dateTimeType)
66 long_datetime = datetime(2011,12,20,11,44,25,81776)
68 self.assertEqual(fromTypedNode(long_node), long_datetime)
69 self.assertEqual(toTypedNode(long_datetime), long_node)
70 self.assertEqual(fromTypedNode(toTypedNode(long_datetime)),
74 return unittest.makeSuite(testRdfHelp, 'test')
75 except ImportError, e:
76 print "Unable to test rdfhelp"
81 if __name__ == "__main__":
82 unittest.main(defaultTest='suite')