From 2ee537360829372d5d7ae4adfbc13f5b61d4dd3a Mon Sep 17 00:00:00 2001 From: Diane Trout Date: Wed, 13 Jul 2011 14:27:34 -0700 Subject: [PATCH] Make sure we can roundtrip unicode characters via converting to utf-8 --- htsworkflow/util/rdfhelp.py | 2 +- htsworkflow/util/test/test_rdfhelp.py | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/htsworkflow/util/rdfhelp.py b/htsworkflow/util/rdfhelp.py index 5c73d98..4a40f0b 100644 --- a/htsworkflow/util/rdfhelp.py +++ b/htsworkflow/util/rdfhelp.py @@ -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): diff --git a/htsworkflow/util/test/test_rdfhelp.py b/htsworkflow/util/test/test_rdfhelp.py index 1012252..b173d5a 100644 --- a/htsworkflow/util/test/test_rdfhelp.py +++ b/htsworkflow/util/test/test_rdfhelp.py @@ -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') -- 2.30.2