Make sure we can roundtrip unicode characters via converting to utf-8
authorDiane Trout <diane@caltech.edu>
Wed, 13 Jul 2011 21:27:34 +0000 (14:27 -0700)
committerDiane Trout <diane@caltech.edu>
Wed, 13 Jul 2011 21:27:34 +0000 (14:27 -0700)
htsworkflow/util/rdfhelp.py
htsworkflow/util/test/test_rdfhelp.py

index 5c73d98be3e6e0b75afe6273824a708a7f608791..4a40f0be0ddc1cae9242eb76461afaa7aa4dfe7f 100644 (file)
@@ -67,7 +67,7 @@ def toTypedNode(value):
     if value_type is not None:
         node = RDF.Node(literal=value, datatype=value_type)
     else:
-        node = RDF.Node(literal=value)
+        node = RDF.Node(literal=unicode(value).encode('utf-8'))
     return node
 
 def fromTypedNode(node):
index 10122528551d308305b44819f28941cb3c0cc9af..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
   
@@ -31,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')