Make sure we can roundtrip unicode characters via converting to utf-8
[htsworkflow.git] / htsworkflow / util / test / test_rdfhelp.py
index 0364d78dfdd2b5ca2129d0f496b3b45bed954022..b173d5aef696be5bc971ba814d7d0fcb89dcaaaa 100644 (file)
@@ -1,6 +1,7 @@
 import unittest
+import types
 
-from htsworkflow.util.rdfhelp import toTypedNode, blankOrUri
+from htsworkflow.util.rdfhelp import blankOrUri, toTypedNode, fromTypedNode
 try:
   import RDF
   
@@ -14,8 +15,7 @@ try:
       def test_typed_node_string(self):
           node = toTypedNode('hello')
           self.failUnlessEqual(node.literal_value['string'], u'hello')
-          self.failUnlessEqual(str(node.literal_value['datatype']),
-                               'http://www.w3.org/2001/XMLSchema#string')
+          self.failUnless(node.literal_value['datatype'] is None)
   
       def test_blank_or_uri_blank(self):
           node = blankOrUri()
@@ -32,6 +32,12 @@ try:
           node = blankOrUri(s)
           self.failUnlessEqual(node.is_resource(), True)
           self.failUnlessEqual(node, s)
+
+      def test_unicode_node_roundtrip(self):
+        literal = u'\u5927'
+        roundtrip = fromTypedNode(toTypedNode(literal))
+        self.failUnlessEqual(roundtrip, literal)
+        self.failUnlessEqual(type(roundtrip), types.UnicodeType)
           
   def suite():
       return unittest.makeSuite(testRdfHelp, 'test')