def test_bool(self): self.assertTrue(Bool(True)) self.assertTrue(Bool("True")) self.assertTrue(Bool("true")) self.assertTrue(Bool(1)) self.assertTrue(Bool("1")) self.assertTrue(Bool(Bool(True))) self.assertFalse(Bool(False)) self.assertFalse(Bool("False")) self.assertFalse(Bool("false")) self.assertFalse(Bool(0)) self.assertFalse(Bool("0")) self.assertFalse(Bool(Bool(0))) # Strict mode with self.assertRaises(ValueError): x = Bool(17) with self.assertRaises(ValueError): x = Bool("a") lax() x = Bool(17) self.assertFalse(Bool.is_valid(17)) x = Bool("a") self.assertFalse(Bool.is_valid("a")) self.assertTrue(Bool.is_valid(True)) self.assertTrue(Bool.is_valid(Bool(True)))
def test_uri(self): """ Test the URI data type """ self.assertEqual("http://foo.org/bargles", URI("http://foo.org/bargles")) with self.assertRaises(ValueError): URI("rdf:type") lax() x = URI("rdf:type") self.assertFalse(URI.is_valid(x))
def test_uris(self): """ Test the URI and URIorCURIE types """ str1 = "https://google.com/test#file?abc=1&def=4" self.assertEqual(str1, URIorCURIE(str1)) self.assertEqual(str1, URI(str1)) str2 = "abc:123" self.assertEqual(str2, URIorCURIE(str2)) str3 = ":123" self.assertEqual(str3, URIorCURIE(str3)) with self.assertRaises(ValueError): URI(str2) with self.assertRaises(ValueError): URIorCURIE("1abc:def") with self.assertRaises(ValueError): URIorCURIE("1:def") lax() URI(str2) URIorCURIE("1abc:def") URIorCURIE("1:def")
def test_time(self): v = datetime.time(13, 17, 43, 279000) self.assertEqual('13:17:43.279000', XSDTime(v)) # A date can be a datetime self.assertEqual('13:17:43.279000', XSDTime(Literal( v, datatype=XSD.time))) # An RDFLIB Literal self.assertEqual('13:17:43.279000', v.isoformat()) # A string self.assertEqual('13:17:43.279000', XSDTime(XSDTime(v))) # An existing date strict() with self.assertRaises(ValueError): XSDTime('Jan 12, 2019') with self.assertRaises(ValueError): XSDTime(datetime.datetime.now()) lax() self.assertEqual('Jan 12, 2019', XSDTime('Jan 12, 2019')) XSDDate(datetime.datetime.now()) self.assertFalse(XSDTime.is_valid('Jan 12, 2019')) self.assertFalse(XSDTime.is_valid(datetime.datetime.now())) self.assertTrue(XSDTime.is_valid(v))
def test_date(self): v = datetime.date(2019, 7, 6) self.assertEqual('2019-07-06', XSDDate(v)) # A date can be a datetime self.assertEqual('2019-07-06', XSDDate(Literal( v, datatype=XSD.date))) # An RDFLIB Literal self.assertEqual('2019-07-06', v.isoformat()) # A string self.assertEqual('2019-07-06', XSDDate(XSDDate(v))) # An existing date strict() with self.assertRaises(ValueError): XSDDate('Jan 12, 2019') with self.assertRaises(ValueError): XSDDate(datetime.datetime.now()) lax() bv = XSDDate('Jan 12, 2019') self.assertEqual('Jan 12, 2019', bv) self.assertFalse(XSDDate.is_valid(bv)) XSDDate(datetime.datetime.now()) self.assertFalse(XSDDate.is_valid('Jan 12, 2019')) self.assertFalse(XSDDate.is_valid(datetime.datetime.now())) self.assertTrue( XSDDate.is_valid(XSDDate(datetime.datetime.now().date()))) self.assertTrue(XSDDate.is_valid(v))
def test_datetime(self): v = datetime.datetime(2019, 7, 6, 17, 22, 39, 7300) self.assertEqual('2019-07-06T17:22:39.007300', XSDDateTime(v)) self.assertEqual('2019-07-06T17:22:39.007300', XSDDateTime(Literal(v, datatype=XSD.datetime))) self.assertEqual('2019-07-06T17:22:39.007300', XSDDateTime(Literal(v).value)) self.assertEqual('2019-07-06T17:22:39.007300', v.isoformat()) self.assertEqual('2019-07-06T17:22:39.007300', XSDDateTime(XSDDateTime(v))) vstr = str(Literal(v).value) self.assertEqual('2019-07-06 17:22:39.007300', vstr) # Note that this has no 'T' self.assertEqual('2019-07-06T17:22:39.007300', XSDDateTime(vstr)) with self.assertRaises(ValueError): XSDDateTime('Jan 12, 2019') lax() self.assertEqual('penguins', XSDDateTime('penguins')) XSDDateTime(datetime.datetime.now()) self.assertFalse(XSDDateTime.is_valid('Jan 12, 2019')) self.assertTrue(XSDDateTime.is_valid(datetime.datetime.now())) self.assertTrue( XSDDateTime.is_valid(XSDDate(datetime.datetime.now().date()))) self.assertTrue(XSDDateTime.is_valid(v))