def _test_local_tz(self): tz = LocalTz() dt_no_tz = datetime(year=2000, month=1, day=1, hour=12, minute=34) now_dt = datetime(year=2000, month=1, day=1, hour=12, minute=34, tzinfo=tz) parseDate(now_dt.isoformat()) # last member is is_dst, which is -1, if there is no tzinfo, which # we expect for dt_no_tz # # see if we get the same times now_dt_tt = now_dt.timetuple() dt_no_tz_tt = dt_no_tz.timetuple() # tm_isdst (timpletuple()[8]) is 0 if a tz is set, # but the dst offset is 0 # if it is -1, no timezone is set if now_dt_tt[8] == 1 and dt_no_tz_tt == -1: # we are applying DST to now time, but not no_tz time, so # they will be off by an hour. This is kind of weird self.assertEquals(now_dt_tt[:2], dt_no_tz_tt[:2]) self.assertEquals(now_dt_tt[4:7], dt_no_tz_tt[4:7]) # add an hour for comparisons dt_no_tz_dst = dt_no_tz dt_no_tz_dst = dt_no_tz + timedelta(hours=1) self.assertEquals(now_dt_tt[3], dt_no_tz_dst.timetuple()[3]) else: self.assertEquals(now_dt_tt[:7], dt_no_tz_tt[:7])
def test_server_date_utc_timezone(self): # sample date from json response from server server_date = "2012-04-10T00:00:00.000+0000" dt = parseDate(server_date) # no dst self.assertEquals(timedelta(seconds=0), dt.tzinfo.dst(dt)) # it's a utc date, no offset self.assertEquals(timedelta(seconds=0), dt.tzinfo.utcoffset(dt))
def test_2038_bug(self): # About to monkey patch, store a reference to function so we can # restore it. function = xml.utils.iso8601.parse xml.utils.iso8601.parse = Mock(side_effect=OverflowError()) parsed = parseDate("9999-09-06T00:00:00.000+0000") xml.utils.iso8601.parse = function # Simulated a 32-bit date overflow, date should have been # replaced by one that does not overflow: self.assertEquals(2038, parsed.year) self.assertEquals(1, parsed.month) self.assertEquals(1, parsed.day)
def add_pool(self, pool, default_quantity_value): self.total_contracts += 1 self.total_contracts_label.set_text(str(self.total_contracts)) self.subscription_name_label.set_text(pool['productName']) # Use unlimited for -1 quanities quantity = pool['quantity'] if quantity < 0: quantity = _('unlimited') quantity_available = -1 else: quantity_available = int(pool['quantity']) - int(pool['consumed']) row = [pool['contractNumber'], "%s / %s" % (pool['consumed'], quantity), managerlib.parseDate(pool['startDate']), managerlib.parseDate(pool['endDate']), default_quantity_value, pool['productName'], pool, PoolWrapper(pool).is_virt_only(), allows_multi_entitlement(pool), quantity_available] self.model.append(row)
def test_server_date_est_timezone(self): est_date = "2012-04-10T00:00:00.000-04:00" dt = parseDate(est_date) self.assertEquals(timedelta(hours=4), dt.tzinfo.utcoffset(dt))