- xsdNS
-
-try:
- import RDF
-
- class TestRDFHelp(TestCase):
- def test_from_none(self):
- self.assertEqual(fromTypedNode(None), None)
-
- def test_typed_node_boolean(self):
- node = toTypedNode(True)
- self.assertIn(node.literal_value['string'], (u'1', u'true'))
- self.assertEqual(str(node.literal_value['datatype']),
- 'http://www.w3.org/2001/XMLSchema#boolean')
-
- def test_bad_boolean(self):
- node = RDF.Node(literal='bad', datatype=xsdNS['boolean'].uri)
- # older versions of librdf ~< 1.0.16 left the literal
- # alone. and thus should fail the fromTypedNode call
- # newer versions coerced the odd value to false.
- try:
- self.assertFalse(fromTypedNode(node))
- except ValueError as e:
- pass
-
- def test_typed_node_string_node_attributes(self):
- node = toTypedNode('hello')
- self.assertEqual(node.literal_value['string'], u'hello')
- self.assertTrue(node.literal_value['datatype'] is None)
-
- def test_typed_real_like(self):
- num = 3.14
- node = toTypedNode(num)
- self.assertEqual(fromTypedNode(node), num)
-
- def test_typed_integer(self):
- num = 3
- node = toTypedNode(num)
- self.assertEqual(fromTypedNode(node), num)
- self.assertEqual(type(fromTypedNode(node)), type(num))
-
- def test_typed_node_string(self):
- s = "Argh matey"
- node = toTypedNode(s)
- self.assertEqual(fromTypedNode(node), s)
- self.assertTrue(isinstance(fromTypedNode(node), six.text_type))
-
- def test_blank_or_uri_blank(self):
- node = blankOrUri()
- self.assertEqual(node.is_blank(), True)
-
- def test_blank_or_uri_url(self):
- s = 'http://google.com'
- node = blankOrUri(s)
- self.assertEqual(node.is_resource(), True)
- self.assertEqual(str(node.uri), s)
-
- def test_blank_or_uri_node(self):
- s = RDF.Node(RDF.Uri('http://google.com'))
- node = blankOrUri(s)
- self.assertEqual(node.is_resource(), True)
- self.assertEqual(node, s)
-
- def test_unicode_node_roundtrip(self):
- literal = u'\u5927'
- roundtrip = fromTypedNode(toTypedNode(literal))
- self.assertTrue(isinstance(roundtrip, six.text_type))
-
- def test_datetime_no_microsecond(self):
- dateTimeType = xsdNS['dateTime'].uri
- short_isostamp = '2011-12-20T11:44:25'
- short_node = RDF.Node(literal=short_isostamp,
- datatype=dateTimeType)
- short_datetime = datetime(2011,12,20,11,44,25)
-
- self.assertEqual(fromTypedNode(short_node), short_datetime)
- self.assertEqual(toTypedNode(short_datetime), short_node)
- self.assertEqual(fromTypedNode(toTypedNode(short_datetime)),
- short_datetime)
-
- def test_datetime_with_microsecond(self):
- dateTimeType = xsdNS['dateTime'].uri
- long_isostamp = '2011-12-20T11:44:25.081776'
- long_node = RDF.Node(literal=long_isostamp,
- datatype=dateTimeType)
- long_datetime = datetime(2011,12,20,11,44,25,81776)
-
- self.assertEqual(fromTypedNode(long_node), long_datetime)
- self.assertEqual(toTypedNode(long_datetime), long_node)
- self.assertEqual(fromTypedNode(toTypedNode(long_datetime)),
- long_datetime)
-
- def test_strip_namespace_uri(self):
- nsOrg = RDF.NS('example.org/example#')
- nsCom = RDF.NS('example.com/example#')
-
- term = 'foo'
- node = nsOrg[term]
- self.assertEqual(strip_namespace(nsOrg, node), term)
- self.assertEqual(strip_namespace(nsCom, node), None)
- self.assertEqual(strip_namespace(nsOrg, node.uri), term)
-
- def test_strip_namespace_exceptions(self):
- nsOrg = RDF.NS('example.org/example#')
- nsCom = RDF.NS('example.com/example#')
-
- node = toTypedNode('bad')
- self.assertRaises(ValueError, strip_namespace, nsOrg, node)
- self.assertRaises(ValueError, strip_namespace, nsOrg, nsOrg)
-
- def test_simplify_uri(self):
- DATA = [('http://asdf.org/foo/bar', 'bar'),
- ('http://asdf.org/foo/bar#bleem', 'bleem'),
- ('http://asdf.org/foo/bar/', 'bar'),
- ('http://asdf.org/foo/bar?was=foo', 'was=foo')]
-
- for uri, expected in DATA:
- self.assertEqual(simplify_uri(uri), expected)
-
- for uri, expected in DATA:
- n = RDF.Uri(uri)
- self.assertEqual(simplify_uri(n), expected)
-
- for uri, expected in DATA:
- n = RDF.Node(RDF.Uri(uri))
- self.assertEqual(simplify_uri(n), expected)
-
- # decoding literals is questionable
- n = toTypedNode('http://foo/bar')
- self.assertRaises(ValueError, simplify_uri, n)
-
- def test_owl_import(self):
- path, name = os.path.split(__file__)
- #loc = 'file://'+os.path.abspath(path)+'/'
- loc = os.path.abspath(path)+'/'
- model = get_model()
- fragment = '''
+ XSD
+
+class TestRDFHelp(TestCase):
+ def test_typed_node_boolean(self):
+ node = Literal(True)
+ self.assertTrue(node.value)
+ self.assertEqual(str(node.datatype),
+ 'http://www.w3.org/2001/XMLSchema#boolean')
+
+ def test_typed_node_string_node_attributes(self):
+ node = Literal('hello')
+ self.assertEqual(node.value, 'hello')
+ self.assertTrue(node.datatype is None)
+
+ def test_typed_real_like(self):
+ num = 3.14
+ node = Literal(num)
+ self.assertEqual(node.toPython(), num)
+ self.assertEqual(type(node.toPython()), float)
+
+ def test_typed_integer(self):
+ num = 3
+ node = Literal(num)
+ self.assertEqual(node.toPython(), num)
+ self.assertEqual(type(node.toPython()), type(num))
+
+ def test_typed_node_string(self):
+ s = "Argh matey"
+ node = Literal(s)
+ self.assertEqual(node.toPython(), s)
+ self.assertTrue(isinstance(node.toPython(), six.text_type))
+
+ def test_unicode_node_roundtrip(self):
+ literal = u'\u5927'
+ roundtrip = Literal(literal).toPython()
+ self.assertTrue(isinstance(roundtrip, six.text_type))
+
+ def test_datetime_no_microsecond(self):
+ dateTimeType = XSD.dateTime
+ short_isostamp = '2011-12-20T11:44:25'
+ short_node = Literal(short_isostamp,
+ datatype=dateTimeType)
+ short_datetime = datetime(2011,12,20,11,44,25)
+
+ self.assertEqual(short_node.toPython(), short_datetime)
+ self.assertEqual(Literal(short_datetime), short_node)
+ self.assertEqual(Literal(short_datetime).toPython(),
+ short_datetime)
+
+ def test_datetime_with_microsecond(self):
+ dateTimeType = XSD.dateTime
+ long_isostamp = '2011-12-20T11:44:25.081776'
+ long_node = Literal(long_isostamp,
+ datatype=dateTimeType)
+ long_datetime = datetime(2011,12,20,11,44,25,81776)
+
+ self.assertEqual(long_node.toPython(), long_datetime)
+ self.assertEqual(Literal(long_datetime), long_node)
+ self.assertEqual(Literal(long_datetime).toPython(),
+ long_datetime)
+
+ def test_strip_namespace_uri(self):
+ nsOrg = Namespace('example.org/example#')
+ nsCom = Namespace('example.com/example#')
+
+ term = 'foo'
+ node = nsOrg[term]
+ self.assertEqual(strip_namespace(nsOrg, node), term)
+ self.assertEqual(strip_namespace(nsCom, node), None)
+
+ def test_strip_namespace_exceptions(self):
+ nsOrg = Namespace('example.org/example#')
+ nsCom = Namespace('example.com/example#')
+
+ node = Literal('bad')
+ self.assertRaises(ValueError, strip_namespace, nsOrg, node)
+ self.assertRaises(ValueError, strip_namespace, nsOrg, nsOrg)
+ self.assertRaises(ValueError, strip_namespace, nsOrg, str(node))
+
+ def test_simplify_uri(self):
+ DATA = [('http://asdf.org/foo/bar', 'bar'),
+ ('http://asdf.org/foo/bar#bleem', 'bleem'),
+ ('http://asdf.org/foo/bar/', 'bar'),
+ ('http://asdf.org/foo/bar?was=foo', 'was=foo')]
+
+ for uri, expected in DATA:
+ self.assertEqual(simplify_uri(uri), expected)
+
+ for uri, expected in DATA:
+ n = URIRef(uri)
+ self.assertEqual(simplify_uri(n), expected)
+
+ for uri, expected in DATA:
+ n = Literal(URIRef(uri), datatype=XSD.anyURI)
+ self.assertEqual(simplify_uri(n), expected)
+
+ # decoding literals is questionable
+ n = Literal('http://foo/bar')
+ self.assertRaises(ValueError, simplify_uri, n)
+
+ def test_owl_import(self):
+ path, name = os.path.split(__file__)
+ #loc = 'file://'+os.path.abspath(path)+'/'
+ loc = os.path.abspath(path)+'/'
+ model = Graph()
+ fragment = '''