def test_from_timestamp(self): # Correct offset: UTC+2, should return datetime + tzoffset(+2) altz = utctz_to_altz('+0200') self.assertEqual(datetime.fromtimestamp(1522827734, tzoffset(altz)), from_timestamp(1522827734, altz)) # Wrong offset: UTC+58, should return datetime + tzoffset(UTC) altz = utctz_to_altz('+5800') self.assertEqual(datetime.fromtimestamp(1522827734, tzoffset(0)), from_timestamp(1522827734, altz)) # Wrong offset: UTC-9000, should return datetime + tzoffset(UTC) altz = utctz_to_altz('-9000') self.assertEqual(datetime.fromtimestamp(1522827734, tzoffset(0)), from_timestamp(1522827734, altz))
def test_from_timestamp(self): # Correct offset: UTC+2, should return datetime + tzoffset(+2) altz = utctz_to_altz('+0200') self.assertEqual(datetime.fromtimestamp(1522827734, tzoffset(altz)), from_timestamp(1522827734, altz)) # Wrong offset: UTC+58, should return datetime + tzoffset(UTC) altz = utctz_to_altz('+5800') self.assertEqual(datetime.fromtimestamp(1522827734, tzoffset(0)), from_timestamp(1522827734, altz)) # Wrong offset: UTC-9000, should return datetime + tzoffset(UTC) altz = utctz_to_altz('-9000') self.assertEqual(datetime.fromtimestamp(1522827734, tzoffset(0)), from_timestamp(1522827734, altz))
def test_parse_date(self): # parse_date(from_timestamp()) must return the tuple unchanged for timestamp, offset in (1522827734, -7200), (1522827734, 0), (1522827734, +3600): self.assertEqual(parse_date(from_timestamp(timestamp, offset)), (timestamp, offset)) # test all supported formats def assert_rval(rval, veri_time, offset=0): self.assertEqual(len(rval), 2) self.assertIsInstance(rval[0], int) self.assertIsInstance(rval[1], int) self.assertEqual(rval[0], veri_time) self.assertEqual(rval[1], offset) # now that we are here, test our conversion functions as well utctz = altz_to_utctz_str(offset) self.assertIsInstance(utctz, str) self.assertEqual(utctz_to_altz(verify_utctz(utctz)), offset) # END assert rval utility rfc = ("Thu, 07 Apr 2005 22:13:11 +0000", 0) iso = ("2005-04-07T22:13:11 -0200", 7200) iso2 = ("2005-04-07 22:13:11 +0400", -14400) iso3 = ("2005.04.07 22:13:11 -0000", 0) alt = ("04/07/2005 22:13:11", 0) alt2 = ("07.04.2005 22:13:11", 0) veri_time_utc = 1112911991 # the time this represents, in time since epoch, UTC for date, offset in (rfc, iso, iso2, iso3, alt, alt2): assert_rval(parse_date(date), veri_time_utc, offset) # END for each date type # and failure self.assertRaises(ValueError, parse_date, datetime.now()) # non-aware datetime self.assertRaises(ValueError, parse_date, 'invalid format') self.assertRaises(ValueError, parse_date, '123456789 -02000') self.assertRaises(ValueError, parse_date, ' 123456789 -0200')
def get_git_releases(): for project, address in GIT_REPOES: with tempfile.TemporaryDirectory() as tmp_dir: repo = retried_clone(address, tmp_dir, bare=True) for tag in repo.tags: tag = tag.tag if tag is None: continue date = from_timestamp(tag.tagged_date, tag.tagger_tz_offset) yield { "name": project, "version": tag.tag, "date": date, "url": address, }