Ejemplo n.º 1
0
    def test_to_python(self):
        dt = "2008-12-01T18:02:00"
        l = Literal(dt,
                    datatype=URIRef('http://www.w3.org/2001/XMLSchema#dateTime'))

        self.assertTrue(isinstance(l.toPython(), datetime))
        self.assertEqual(l.toPython().isoformat(), dt)
Ejemplo n.º 2
0
    def test_timezone_offset(self):
        dt = "2010-02-10T12:36:00+03:00"
        l = Literal(dt,
                    datatype=URIRef('http://www.w3.org/2001/XMLSchema#dateTime'))

        self.assertTrue(isinstance(l.toPython(), datetime))
        self.assertEqual(l.toPython().isoformat(), dt)
Ejemplo n.º 3
0
    def test_timezone_offset_millisecond(self):
        dt = "2011-01-16T19:39:18.239743+01:00"
        l = Literal(dt,
                    datatype=URIRef('http://www.w3.org/2001/XMLSchema#dateTime'))

        self.assertTrue(isinstance(l.toPython(), datetime))
        self.assertEqual(l.toPython().isoformat(), dt)
    def test_timezone_z(self):
        dt = "2008-12-01T18:02:00.522630Z"
        l = Literal(dt, datatype=URIRef("http://www.w3.org/2001/XMLSchema#dateTime"))

        self.assert_(isinstance(l.toPython(), datetime))
        self.assertEquals(datetime_isoformat(l.toPython(), DATE_EXT_COMPLETE + "T" + "%H:%M:%S.%f" + TZ_EXT), dt)
        self.assertEquals(l.toPython().isoformat(), "2008-12-01T18:02:00.522630+00:00")
Ejemplo n.º 5
0
    def test_to_python(self):
        dt = "2008-12-01T18:02:00"
        l = Literal(
            dt, datatype=URIRef('http://www.w3.org/2001/XMLSchema#dateTime'))

        self.assertTrue(isinstance(l.toPython(), datetime))
        self.assertEqual(l.toPython().isoformat(), dt)
Ejemplo n.º 6
0
    def test_timezone_offset(self):
        dt = "2010-02-10T12:36:00+03:00"
        l = Literal(
            dt, datatype=URIRef('http://www.w3.org/2001/XMLSchema#dateTime'))

        self.assertTrue(isinstance(l.toPython(), datetime))
        self.assertEqual(l.toPython().isoformat(), dt)
Ejemplo n.º 7
0
    def test_timezone_offset_millisecond(self):
        dt = "2011-01-16T19:39:18.239743+01:00"
        l = Literal(
            dt, datatype=URIRef('http://www.w3.org/2001/XMLSchema#dateTime'))

        self.assertTrue(isinstance(l.toPython(), datetime))
        self.assertEqual(l.toPython().isoformat(), dt)
Ejemplo n.º 8
0
    def test_timezone_z(self):
        dt = "2008-12-01T18:02:00.522630Z"
        l = Literal(dt,
                    datatype=URIRef('http://www.w3.org/2001/XMLSchema#dateTime'))

        self.assertTrue(isinstance(l.toPython(), datetime))
        self.assertEqual(datetime_isoformat(l.toPython(),
                                            DATE_EXT_COMPLETE + 'T' + '%H:%M:%S.%f' + TZ_EXT),
                         dt)
        self.assertEqual(l.toPython().isoformat(),
                         "2008-12-01T18:02:00.522630+00:00")
Ejemplo n.º 9
0
    def test_timezone_offset_to_utc(self):
        dt = "2010-02-10T12:36:00+03:00"
        l = Literal(
            dt, datatype=URIRef('http://www.w3.org/2001/XMLSchema#dateTime'))

        utc_dt = l.toPython().astimezone(UTC)
        self.assertEqual(datetime_isoformat(utc_dt), "2010-02-10T09:36:00Z")
Ejemplo n.º 10
0
    def test_timezone_offset_to_utc(self):
        dt = "2010-02-10T12:36:00+03:00"
        l = Literal(dt,
                    datatype=URIRef('http://www.w3.org/2001/XMLSchema#dateTime'))

        utc_dt = l.toPython().astimezone(UTC)
        self.assertEqual(datetime_isoformat(utc_dt),
                          "2010-02-10T09:36:00Z")
Ejemplo n.º 11
0
    def test_microseconds(self):
        dt1 = datetime(2009, 6, 15, 23, 37, 6, 522630)
        l = Literal(dt1)

        # datetime with microseconds should be cast as a literal with using
        # XML Schema dateTime as the literal datatype
        self.assertEqual(str(l), "2009-06-15T23:37:06.522630")
        self.assertEqual(l.datatype, XSD.dateTime)

        dt2 = l.toPython()
        self.assertEqual(dt2, dt1)
Ejemplo n.º 12
0
    def test_microseconds(self):
        dt1 = datetime(2009, 6, 15, 23, 37, 6, 522630)
        l = Literal(dt1)

        # datetime with microseconds should be cast as a literal with using
        # XML Schema dateTime as the literal datatype
        self.assertEqual(text_type(l), '2009-06-15T23:37:06.522630')
        self.assertEqual(l.datatype, XSD.dateTime)

        dt2 = l.toPython()
        self.assertEqual(dt2, dt1)
Ejemplo n.º 13
0
    def test_microseconds(self):
        dt1 = datetime(2009, 6, 15, 23, 37, 6, 522630)
        l = Literal(dt1)

        # datetime with microseconds should be cast as a literal with using
        # XML Schema dateTime as the literal datatype
        self.assertEquals(l.title(), '2009-06-15T23:37:06.522630')
        self.assertEquals(l.datatype, XSD.dateTime)

        # 2.6.0 added the %f format to datetime.strftime, so we should have
        # a lossless conversion back to the datetime
        # http://bugs.python.org/issue1982
        if sys.version_info >= (2,6,0):
            dt2 = l.toPython()
            self.assertEqual(dt2, dt1)

        # otherwise, we just get back the same literal again
        else:
            dt2 = l.toPython()
            l2 = Literal('2009-06-15T23:37:06.522630', datatype=XSD.dateTime)
            self.assertTrue(l2, l.toPython())
Ejemplo n.º 14
0
    def test_microseconds(self):
        dt1 = datetime(2009, 6, 15, 23, 37, 6, 522630)
        l = Literal(dt1)

        # datetime with microseconds should be cast as a literal with using
        # XML Schema dateTime as the literal datatype
        self.assertEquals(l.title(), '2009-06-15T23:37:06.522630')
        self.assertEquals(l.datatype, XSD.dateTime)

        # 2.6.0 added the %f format to datetime.strftime, so we should have
        # a lossless conversion back to the datetime
        # http://bugs.python.org/issue1982
        if sys.version_info >= (2,6,0):
            dt2 = l.toPython()
            self.assertEqual(dt2, dt1)

        # otherwise, we just get back the same literal again
        else:
            dt2 = l.toPython()
            l2 = Literal('2009-06-15T23:37:06.522630', datatype=XSD.dateTime)
            self.assertTrue(l2, l.toPython())
Ejemplo n.º 15
0
    def testSpecificBinding(self) -> None:
        def lexify(s: str) -> str:
            return "--%s--" % s

        def unlexify(s: str) -> str:
            return s[2:-2]

        datatype = rdflib.URIRef("urn:dt:mystring")

        # Datatype-specific rule
        bind(datatype, str, unlexify, lexify, datatype_specific=True)

        s = "Hello"
        normal_l = Literal(s)
        self.assertEqual(str(normal_l), s)
        self.assertEqual(normal_l.toPython(), s)
        self.assertEqual(normal_l.datatype, None)

        specific_l = Literal("--%s--" % s, datatype=datatype)
        self.assertEqual(str(specific_l), lexify(s))
        self.assertEqual(specific_l.toPython(), s)
        self.assertEqual(specific_l.datatype, datatype)
Ejemplo n.º 16
0
    def test_microseconds(self):
        import platform
        if platform.system() == 'Java' or (platform.system() != 'Java' and sys.version_info[:2] == (2, 5)):
            from nose import SkipTest
            raise SkipTest('datetime microseconds unsupported in Python2.5 and Jython')
        dt1 = datetime(2009, 6, 15, 23, 37, 6, 522630)
        l = Literal(dt1)

        # datetime with microseconds should be cast as a literal with using
        # XML Schema dateTime as the literal datatype
        self.assertEqual(text_type(l), '2009-06-15T23:37:06.522630')
        self.assertEqual(l.datatype, XSD.dateTime)

        dt2 = l.toPython()
        self.assertEqual(dt2, dt1)
Ejemplo n.º 17
0
    def test_microseconds(self):
        import platform
        if platform.system() == 'Java' or (platform.system() != 'Java'
                                           and sys.version_info[:2] == (2, 5)):
            from nose import SkipTest
            raise SkipTest(
                'datetime microseconds unsupported in Python2.5 and Jython')
        dt1 = datetime(2009, 6, 15, 23, 37, 6, 522630)
        l = Literal(dt1)

        # datetime with microseconds should be cast as a literal with using
        # XML Schema dateTime as the literal datatype
        self.assertEqual(unicode(l), '2009-06-15T23:37:06.522630')
        self.assertEqual(l.datatype, XSD.dateTime)

        dt2 = l.toPython()
        self.assertEqual(dt2, dt1)
Ejemplo n.º 18
0
 def test_to_python_timedelta(self):
     l = Literal("P4DT5H6M7S", datatype=XSD.dayTimeDuration)
     self.assertTrue(isinstance(l.toPython(), timedelta))
     self.assertEqual(l.toPython(), parse_duration("P4DT5H6M7S"))
Ejemplo n.º 19
0
 def test_to_python_timedelta(self):
     l = Literal("P4DT5H6M7S", datatype=XSD.dayTimeDuration)
     self.assertTrue(isinstance(l.toPython(), timedelta))
     self.assertEqual(l.toPython(), parse_duration("P4DT5H6M7S"))
Ejemplo n.º 20
0
 def test_to_python_ym_duration(self):
     l = Literal("P1Y2M", datatype=XSD.yearMonthDuration)
     self.assertTrue(isinstance(l.toPython(), Duration))
     self.assertEqual(l.toPython(), parse_duration("P1Y2M"))
Ejemplo n.º 21
0
 def test_to_python_ymdhms_duration(self):
     l = Literal("P1Y2M4DT5H6M7S", datatype=XSD.duration)
     self.assertTrue(isinstance(l.toPython(), Duration))
     self.assertEqual(l.toPython(), parse_duration("P1Y2M4DT5H6M7S"))
Ejemplo n.º 22
0
 def test_to_python_ym_duration(self):
     l = Literal("P1Y2M", datatype=XSD.yearMonthDuration)
     self.assertTrue(isinstance(l.toPython(), Duration))
     self.assertEqual(l.toPython(), parse_duration("P1Y2M"))
Ejemplo n.º 23
0
 def test_to_python_ymdhms_duration(self):
     l = Literal("P1Y2M4DT5H6M7S", datatype=XSD.duration)
     self.assertTrue(isinstance(l.toPython(), Duration))
     self.assertEqual(l.toPython(), parse_duration("P1Y2M4DT5H6M7S"))
Ejemplo n.º 24
0
    def test_timezone(self):
        if sys.version_info >= (2, 6, 0):
            l = Literal("2008-12-01T18:02:00.522630Z", datatype=URIRef("http://www.w3.org/2001/XMLSchema#dateTime"))

            self.assert_(isinstance(l.toPython(), datetime))