Exemple #1
0
def _adjust_phone_datetime_to_utc(value, phone_tz):
    """
    put a phone datetime (like timeEnd, modified_on, etc.) into UTC

    input and output are both timezone-naive

    """
    phone_tz = _soft_assert_tz_not_string(phone_tz)
    assert value.tzinfo is None
    if phone_timezones_have_been_processed():
        return value
    else:
        return _adjust_datetime_to_utc(value, phone_tz)
Exemple #2
0
def _adjust_phone_datetime_to_utc(value, phone_tz):
    """
    put a phone datetime (like timeEnd, modified_on, etc.) into UTC

    input and output are both timezone-naive

    """
    phone_tz = _soft_assert_tz_not_string(phone_tz)
    assert value.tzinfo is None
    if phone_timezones_have_been_processed():
        return value
    else:
        return _adjust_datetime_to_utc(value, phone_tz)
Exemple #3
0
def _adjust_utc_datetime_to_phone_datetime(value, phone_tz):
    """
    adjust a UTC datetime so that it's comparable with a phone datetime
    (like timeEnd, modified_on, etc.)

    returns a timezone-aware date

    """
    phone_tz = _soft_assert_tz_not_string(phone_tz)
    assert value.tzinfo is None
    if phone_timezones_have_been_processed():
        return value.replace(tzinfo=pytz.utc)
    else:
        return _adjust_utc_datetime_to_timezone(value, phone_tz)
Exemple #4
0
def _adjust_utc_datetime_to_phone_datetime(value, phone_tz):
    """
    adjust a UTC datetime so that it's comparable with a phone datetime
    (like timeEnd, modified_on, etc.)

    returns a timezone-aware date

    """
    phone_tz = _soft_assert_tz_not_string(phone_tz)
    assert value.tzinfo is None
    if phone_timezones_have_been_processed():
        return value.replace(tzinfo=pytz.utc)
    else:
        return _adjust_utc_datetime_to_timezone(value, phone_tz)
 def test_phone_to_server(self):
     cases = [
         ('2015-03-20T08:00:00', pytz.FixedOffset(-4 * 60),
          '2015-03-20T12:00:00'),
         ('2015-03-20T20:30:00', pytz.FixedOffset(-4 * 60),
          '2015-03-21T00:30:00'),
     ]
     for in_, tz, out in cases:
         phone_dt = dateutil.parser.parse(in_)
         server_dt = PhoneTime(phone_dt, tz).server_time().done()
         if phone_timezones_have_been_processed():
             # no change
             self.assertEqual(server_dt.isoformat(), in_)
         else:
             self.assertEqual(server_dt.isoformat(), out)
 def test_phone_to_server(self):
     cases = [
         ('2015-03-20T08:00:00', pytz.FixedOffset(-4 * 60),
          '2015-03-20T12:00:00'),
         ('2015-03-20T20:30:00', pytz.FixedOffset(-4 * 60),
          '2015-03-21T00:30:00'),
     ]
     for in_, tz, out in cases:
         phone_dt = dateutil.parser.parse(in_)
         server_dt = PhoneTime(phone_dt, tz).server_time().done()
         if phone_timezones_have_been_processed():
             # no change
             self.assertEqual(server_dt.isoformat(), in_)
         else:
             self.assertEqual(server_dt.isoformat(), out)