def test_datetime_to_dtstr_to_datetime_with_tz(self): dt = timezone.make_aware(datetime.datetime(2015, 11, 9, 22, 15, 45, 125000), pytz.timezone('Europe/Kiev')) dtstr = datetime_to_dtstr(dt) self.assertEqual(dtstr, 'igse2a5h') self.assertEqual(dtstr_to_datetime(dtstr, to_tz=pytz.timezone('Europe/Kiev')), dt) dt = timezone.make_aware(datetime.datetime(2015, 7, 9, 22, 15, 45, 125000), pytz.timezone('Europe/Kiev')) dtstr = datetime_to_dtstr(dt) self.assertEqual(dtstr, 'ibwkrcdh') self.assertEqual(dtstr_to_datetime(dtstr, to_tz=pytz.timezone('Europe/Kiev')), dt)
def test_datetime_to_dtstr_to_datetime(self): dt = datetime.datetime(2015, 11, 9, 22, 15, 45, 125000) dtstr = datetime_to_dtstr(dt) self.assertEqual(dtstr, 'igsiclph') self.assertEqual(dtstr_to_datetime(dtstr), dt) dt = datetime.datetime(2015, 7, 9, 22, 15, 45, 125000) dtstr = datetime_to_dtstr(dt) self.assertEqual(dtstr, 'ibwr6tph') self.assertEqual(dtstr_to_datetime(dtstr), dt)
def test_datetime_to_dtstr_to_datetime_for_aware(self): dt1 = timezone.make_aware(datetime.datetime(2015, 11, 9, 22, 15, 45, 125000), pytz.timezone('Europe/Kiev')) dtstr = datetime_to_dtstr(dt1) self.assertEqual(dtstr, 'igse2a5h') dt2 = timezone.make_aware(dtstr_to_datetime(dtstr), pytz.UTC).astimezone(pytz.timezone('Europe/Kiev')) self.assertEqual(dt2, dt1) dt1 = timezone.make_aware(datetime.datetime(2015, 7, 9, 22, 15, 45, 125000), pytz.timezone('Europe/Kiev')) dtstr = datetime_to_dtstr(dt1) self.assertEqual(dtstr, 'ibwkrcdh') dt2 = timezone.make_aware(dtstr_to_datetime(dtstr), pytz.UTC).astimezone(pytz.timezone('Europe/Kiev')) self.assertEqual(dt2, dt1)
def test_datetime_to_dtstr_to_datetime_with_tz(self): dt = timezone.make_aware( datetime.datetime(2015, 11, 9, 22, 15, 45, 125000), pytz.timezone('Europe/Kiev')) dtstr = datetime_to_dtstr(dt) self.assertEqual(dtstr, 'igse2a5h') self.assertEqual( dtstr_to_datetime(dtstr, to_tz=pytz.timezone('Europe/Kiev')), dt) dt = timezone.make_aware( datetime.datetime(2015, 7, 9, 22, 15, 45, 125000), pytz.timezone('Europe/Kiev')) dtstr = datetime_to_dtstr(dt) self.assertEqual(dtstr, 'ibwkrcdh') self.assertEqual( dtstr_to_datetime(dtstr, to_tz=pytz.timezone('Europe/Kiev')), dt)
def remove_old_tmp_files(profiles=None, max_lifetime=(7 * 24)): """ Removes old temp files that is older than expiration_hours. If profiles is None then will be use all profiles. """ assert isinstance(profiles, (list, tuple)) or profiles is None if profiles is None: profiles = dju_settings.DJU_IMG_UPLOAD_PROFILES.keys() profiles = set(('default', ) + tuple(profiles)) total = removed = 0 old_dt = datetime.datetime.utcnow() - datetime.timedelta( hours=max_lifetime) for profile in profiles: conf = get_profile_configs(profile=profile) root_path = os.path.join(settings.MEDIA_ROOT, dju_settings.DJU_IMG_UPLOAD_SUBDIR, conf['PATH']) for file_path in get_files_recursive(root_path): m = re_tmp.match(os.path.basename(file_path)) if m is None: continue total += 1 fdt = dtstr_to_datetime(m.group('dtstr')) if fdt and old_dt > fdt: os.remove(file_path) removed += 1 return removed, total
def test_datetime_to_dtstr_without_dt(self): now = datetime.datetime.utcnow() now = now.replace( microsecond=int(int(now.microsecond / 1e3) * 1e3)) # because 1s = 1000ms in timestamp dtstr = datetime_to_dtstr() self.assertTrue(now <= dtstr_to_datetime(dtstr) < now + datetime.timedelta(seconds=5))
def test_datetime_to_dtstr_to_datetime_for_aware(self): dt1 = timezone.make_aware( datetime.datetime(2015, 11, 9, 22, 15, 45, 125000), pytz.timezone('Europe/Kiev')) dtstr = datetime_to_dtstr(dt1) self.assertEqual(dtstr, 'igse2a5h') dt2 = timezone.make_aware(dtstr_to_datetime(dtstr), pytz.UTC).astimezone( pytz.timezone('Europe/Kiev')) self.assertEqual(dt2, dt1) dt1 = timezone.make_aware( datetime.datetime(2015, 7, 9, 22, 15, 45, 125000), pytz.timezone('Europe/Kiev')) dtstr = datetime_to_dtstr(dt1) self.assertEqual(dtstr, 'ibwkrcdh') dt2 = timezone.make_aware(dtstr_to_datetime(dtstr), pytz.UTC).astimezone( pytz.timezone('Europe/Kiev')) self.assertEqual(dt2, dt1)
def remove_old_tmp_files(profiles=None, max_lifetime=(7 * 24)): """ Removes old temp files that is older than expiration_hours. If profiles is None then will be use all profiles. """ assert isinstance(profiles, (list, tuple)) or profiles is None if profiles is None: profiles = dju_settings.DJU_IMG_UPLOAD_PROFILES.keys() profiles = set(('default',) + tuple(profiles)) total = removed = 0 old_dt = datetime.datetime.utcnow() - datetime.timedelta(hours=max_lifetime) for profile in profiles: conf = get_profile_configs(profile=profile) root_path = os.path.join(settings.MEDIA_ROOT, dju_settings.DJU_IMG_UPLOAD_SUBDIR, conf['PATH']) for file_path in get_files_recursive(root_path): m = re_tmp.match(os.path.basename(file_path)) if m is None: continue total += 1 fdt = dtstr_to_datetime(m.group('dtstr')) if fdt and old_dt > fdt: os.remove(file_path) removed += 1 return removed, total
def test_dtstr_to_datetime_with_error(self): self.assertIsNone(dtstr_to_datetime('abcdefg!')) with self.assertRaises(ValueError): dtstr_to_datetime('abcdefg!', fail_silently=False)
def test_datetime_to_dtstr_without_dt(self): now = datetime.datetime.utcnow() now = now.replace(microsecond=int(int(now.microsecond / 1e3) * 1e3)) # because 1s = 1000ms in timestamp dtstr = datetime_to_dtstr() self.assertTrue(now <= dtstr_to_datetime(dtstr) < now + datetime.timedelta(seconds=5))