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_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_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 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 generate_img_id(profile, ext=None, label=None, tmp=False): """ Generates img_id. """ if ext and not ext.startswith('.'): ext = '.' + ext if label: label = re.sub(r'[^a-z0-9_\-]', '', label, flags=re.I) label = re.sub(r'_+', '_', label) label = label[:60] return '{profile}:{tmp}{dtstr}_{rand}{label}{ext}'.format( profile=profile, tmp=(dju_settings.DJU_IMG_UPLOAD_TMP_PREFIX if tmp else ''), dtstr=datetime_to_dtstr(), rand=get_random_string(4, 'abcdefghijklmnopqrstuvwxyz0123456789'), label=(('_' + label) if label else ''), ext=(ext or ''), )
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))