def test_date(self, space): date_api = _PyDateTime_Import(space) w_date = _PyDate_FromDate(space, 2010, 06, 03, date_api.c_DateType) assert space.unwrap(space.str(w_date)) == '2010-06-03' assert PyDate_Check(space, w_date) assert PyDate_CheckExact(space, w_date) assert PyDateTime_GET_YEAR(space, w_date) == 2010 assert PyDateTime_GET_MONTH(space, w_date) == 6 assert PyDateTime_GET_DAY(space, w_date) == 3
def test_time(self, space): date_api = _PyDateTime_Import(space) w_time = _PyTime_FromTime( space, 23, 15, 40, 123456, space.w_None, date_api.c_TimeType) assert space.unwrap(space.str(w_time)) == '23:15:40.123456' assert PyTime_Check(space, w_time) assert PyTime_CheckExact(space, w_time) assert PyDateTime_TIME_GET_HOUR(space, w_time) == 23 assert PyDateTime_TIME_GET_MINUTE(space, w_time) == 15 assert PyDateTime_TIME_GET_SECOND(space, w_time) == 40 assert PyDateTime_TIME_GET_MICROSECOND(space, w_time) == 123456
def test_delta(self, space): date_api = _PyDateTime_Import(space) w_delta = space.appexec( [space.wrap(3), space.wrap(15)], """(days, seconds): from datetime import timedelta return timedelta(days, seconds) """) assert PyDelta_Check(space, w_delta) assert PyDelta_CheckExact(space, w_delta) w_delta = _PyDelta_FromDelta(space, 10, 20, 30, True, date_api.c_DeltaType) assert PyDelta_Check(space, w_delta) assert PyDelta_CheckExact(space, w_delta) assert PyDateTime_DELTA_GET_DAYS(space, w_delta) == 10 assert PyDateTime_DELTA_GET_SECONDS(space, w_delta) == 20 assert PyDateTime_DELTA_GET_MICROSECONDS(space, w_delta) == 30
def test_datetime(self, space): date_api = _PyDateTime_Import(space) w_date = _PyDateTime_FromDateAndTime( space, 2010, 06, 03, 23, 15, 40, 123456, space.w_None, date_api.c_DateTimeType) assert space.unwrap(space.str(w_date)) == '2010-06-03 23:15:40.123456' assert PyDateTime_Check(space, w_date) assert PyDateTime_CheckExact(space, w_date) assert PyDate_Check(space, w_date) assert not PyDate_CheckExact(space, w_date) assert PyDateTime_GET_YEAR(space, w_date) == 2010 assert PyDateTime_GET_MONTH(space, w_date) == 6 assert PyDateTime_GET_DAY(space, w_date) == 3 assert PyDateTime_DATE_GET_HOUR(space, w_date) == 23 assert PyDateTime_DATE_GET_MINUTE(space, w_date) == 15 assert PyDateTime_DATE_GET_SECOND(space, w_date) == 40 assert PyDateTime_DATE_GET_MICROSECOND(space, w_date) == 123456
def test_basicsize(self, space, name): datetime = _PyDateTime_Import(space) py_size = getattr(datetime, "c_%sType" % name).c_tp_basicsize c_size = rffi.sizeof(cts.gettype("PyDateTime_%s" % name)) assert py_size == c_size