示例#1
0
 def test_datetime_array(self):
     self.assert_supports_temporal_types()
     with self.driver.session() as session:
         data = [
             DateTime(2018, 4, 6, 13, 4, 42.516120),
             DateTime(1976, 6, 13)
         ]
         value = session.write_transaction(run_and_rollback,
                                           "CREATE (a {x:$x}) RETURN a.x",
                                           x=data)
         self.assertEqual(value, data)
示例#2
0
 def test_whole_second_localdatetime(self):
     self.assert_supports_temporal_types()
     with self.driver.session() as session:
         result = session.run("RETURN localdatetime('1976-06-13T12:34:56')")
         value = result.single().value()
         self.assertIsInstance(value, DateTime)
         self.assertEqual(value, DateTime(1976, 6, 13, 12, 34, 56))
示例#3
0
 def test_datetime_with_named_time_zone(self):
     self.assert_supports_temporal_types()
     with self.driver.session() as session:
         result = session.run("RETURN datetime('1976-06-13T12:34:56.789012345[Europe/London]')")
         value = result.single().value()
         self.assertIsInstance(value, DateTime)
         self.assertEqual(value, timezone("Europe/London").localize(DateTime(1976, 6, 13, 12, 34, 56.789012345)))
示例#4
0
 def test_datetime_with_numeric_time_offset(self):
     self.assert_supports_temporal_types()
     with self.driver.session() as session:
         result = session.run("RETURN datetime('1976-06-13T12:34:56.789012345+01:30')")
         value = result.single().value()
         self.assertIsInstance(value, DateTime)
         self.assertEqual(value, DateTime(1976, 6, 13, 12, 34, 56.789012345, tzinfo=FixedOffset(90)))
示例#5
0
 def test_nanosecond_resolution_datetime(self):
     self.assert_supports_temporal_types()
     with self.driver.session() as session:
         result = session.run("RETURN datetime('1976-06-13T12:34:56.789012345')")
         value = result.single().value()
         self.assertIsInstance(value, DateTime)
         self.assertEqual(value, DateTime(1976, 6, 13, 12, 34, 56.789012345, tzinfo=utc))
示例#6
0
 def test_whole_second_datetime(self):
     self.assert_supports_temporal_types()
     with self.driver.session() as session:
         result = session.run("CYPHER runtime=interpreted WITH $x AS x "
                              "RETURN x.year, x.month, x.day, "
                              "       x.hour, x.minute, x.second",
                              x=DateTime(1976, 6, 13, 12, 34, 56))
         year, month, day, hour, minute, second = result.single()
         self.assertEqual(year, 1976)
         self.assertEqual(month, 6)
         self.assertEqual(day, 13)
         self.assertEqual(hour, 12)
         self.assertEqual(minute, 34)
         self.assertEqual(second, 56)
示例#7
0
 def test_datetime_with_numeric_time_offset(self):
     self.assert_supports_temporal_types()
     with self.driver.session() as session:
         result = session.run("CYPHER runtime=interpreted WITH $x AS x "
                              "RETURN x.year, x.month, x.day, "
                              "       x.hour, x.minute, x.second, x.nanosecond, x.offset",
                              x=DateTime(1976, 6, 13, 12, 34, 56.789012345, tzinfo=FixedOffset(90)))
         year, month, day, hour, minute, second, nanosecond, offset = result.single()
         self.assertEqual(year, 1976)
         self.assertEqual(month, 6)
         self.assertEqual(day, 13)
         self.assertEqual(hour, 12)
         self.assertEqual(minute, 34)
         self.assertEqual(second, 56)
         self.assertEqual(nanosecond, 789012345)
         self.assertEqual(offset, "+01:30")
示例#8
0
 def test_datetime_with_named_time_zone(self):
     self.assert_supports_temporal_types()
     with self.driver.session() as session:
         input_value = timezone("US/Pacific").localize(DateTime(1976, 6, 13, 12, 34, 56.789012345))
         result = session.run("CYPHER runtime=interpreted WITH $x AS x "
                              "RETURN x.year, x.month, x.day, "
                              "       x.hour, x.minute, x.second, x.nanosecond, x.timezone",
                              x=input_value)
         year, month, day, hour, minute, second, nanosecond, tz = result.single()
         self.assertEqual(year, input_value.year)
         self.assertEqual(month, input_value.month)
         self.assertEqual(day, input_value.day)
         self.assertEqual(hour, input_value.hour)
         self.assertEqual(minute, input_value.minute)
         self.assertEqual(second, int(input_value.second))
         self.assertEqual(nanosecond, int (1000000000 * input_value.second) % 1000000000)
         self.assertEqual(tz, input_value.tzinfo.zone)