def test_v2_range_offset_not_proper_str_or_int(self): with pytest.raises(TypeError): types.Range(zone_offset=10.2) with pytest.raises(TypeError): types.Range(zone_offset="+.00:11") types.Range(zone_offset="+00:a1") types.Range(zone_offset="+00:11lol")
def test_v2_range_timezone_discard_zoneoffset(self): now = datetime.now().astimezone() start = now end = now r = types.Range(start=start, end=end, zone_offset=0) assert(r.start_formatted()[-6:] == "-07:00") assert(r.end_formatted()[-6:] == "-07:00")
def test_v2_range_unix_epoch_timezone(self): seconds_now = int(time.time()) start = seconds_now end = seconds_now r = types.Range(start=start, end=end, zone_offset=10) assert(r.start_formatted()[-6:] == "+00:00") assert(r.end_formatted()[-6:] == "+00:00")
def test_v2_range_timezone_conversion_custom_zoneoffset_str(self): naive_now = datetime.now() start = naive_now end = naive_now r = types.Range(start=start, end=end, zone_offset="+09:23") assert(r.start_formatted()[-6:] == "+09:23") assert(r.end_formatted()[-6:] == "+09:23")
def test_v2_range_timezone_conversion_use_local_timezone(self): local_datetime = datetime.now().astimezone() start = local_datetime end = local_datetime r = types.Range(start=start, end=end) assert(r.start == local_datetime) assert(r.end == local_datetime)
def test_v2_range_start_and_end_independent(self): naive_now = datetime.now() now = naive_now.astimezone() start = naive_now end = now r = types.Range(start=start, end=end, zone_offset=1) assert(r.start_formatted()[-6:] == "+01:00") assert(r.end_formatted()[-6:] == "-07:00")
def test_v2_range_timezone_conversion_obey_custom_zoneoffset(self): timezone_now = datetime.now() custom_time = datetime.now().replace(tzinfo = timezone(timedelta(hours=-5))) start = custom_time end = custom_time r = types.Range(start=start, end=end) assert(r.start_formatted() == start.isoformat("T")) assert(r.start_formatted() != timezone_now.isoformat("T")) assert(r.end_formatted() == end.isoformat("T")) assert(r.end_formatted() != timezone_now.isoformat("T"))
def test_v2_start_end_not_int_or_datetime(self): with pytest.raises(TypeError): types.Range(start=1.234, zone_offset=-1) with pytest.raises(TypeError): types.Range(end="2019-01-01T00:00:00Z+00:00", zone_offset=-1)
def test_v2_range_offset_too_large(self): naive_now = datetime.now() with pytest.raises(ValueError): types.Range(start=naive_now, zone_offset=30) with pytest.raises(ValueError): types.Range(start=naive_now, zone_offset="+24:80")
def test_v2_range_timezone_conversion_default_end_UTC(self): naive_now = datetime.now() end = naive_now r = types.Range(end=end) assert(r.end_formatted()[-6:] == "+00:00") assert(r.start is None)
def test_v2_range_timezone_conversion_default_start_UTC(self): naive_now = datetime.now() start = naive_now r = types.Range(start=start) assert(r.start_formatted()[-6:] == "+00:00") assert(r.end is None)