def test_get_relative_path_from_img_id_with_create_dirs(self): self.assertEqual( get_relative_path_from_img_id( 'default:__t_abcde1234_ab12_myname.jpeg', create_dirs=True), 'upload-img/common/34/__t_abcde1234_ab12_myname__m_93c87b2a66.jpeg' ) self.assertTrue(os.path.isdir(media_path('upload-img/common/34')))
def test_upload_image_without_profile(self): f = get_img_file(create_test_image(1000, 1000)) r = self.client.post(self.upload_url, {'images[]': [f]}) self.assertEqual(r.status_code, 200) d = self.get_json(r) self.assertEqual(len(d['uploaded']), 1) self.assertEqual(len(d['errors']), 0) item = d['uploaded'][0] self.assertIn('url', item) self.assertIn('rel_url', item) self.assertIn('img_id', item) self.assertIn('variants', item) self.assertIsInstance(item['url'], basestring) self.assertIsInstance(item['rel_url'], basestring) self.assertIsInstance(item['img_id'], basestring) self.assertIsInstance(item['variants'], dict) self.assertEqual(len(item['variants']), 0) self.assertTrue( item['img_id'].startswith('default:' + dju_settings.DJU_IMG_UPLOAD_TMP_PREFIX)) self.assertTrue(item['img_id'].endswith('.jpeg')) self.assertEqual(get_relative_path_from_img_id(item['img_id']), item['rel_url']) self.assertEqual(settings.MEDIA_URL + item['rel_url'], item['url']) self.assertUploadedFilesExist(d) f.seek(0) r = self.client.post(self.upload_url, { 'images[]': [f], 'label': 'lab' }) self.assertEqual(r.status_code, 200) d = self.get_json(r) item = d['uploaded'][0] self.assertTrue(item['img_id'].endswith('_lab.jpeg')) self.assertUploadedFilesExist(d)
def test_upload_image_without_profile(self): f = get_img_file(create_test_image(1000, 1000)) r = self.client.post(self.upload_url, {'images[]': [f]}) self.assertEqual(r.status_code, 200) d = self.get_json(r) self.assertEqual(len(d['uploaded']), 1) self.assertEqual(len(d['errors']), 0) item = d['uploaded'][0] self.assertIn('url', item) self.assertIn('rel_url', item) self.assertIn('img_id', item) self.assertIn('variants', item) self.assertIsInstance(item['url'], basestring) self.assertIsInstance(item['rel_url'], basestring) self.assertIsInstance(item['img_id'], basestring) self.assertIsInstance(item['variants'], dict) self.assertEqual(len(item['variants']), 0) self.assertTrue(item['img_id'].startswith('default:' + dju_settings.DJU_IMG_UPLOAD_TMP_PREFIX)) self.assertTrue(item['img_id'].endswith('.jpeg')) self.assertEqual(get_relative_path_from_img_id(item['img_id']), item['rel_url']) self.assertEqual(settings.MEDIA_URL + item['rel_url'], item['url']) self.assertUploadedFilesExist(d) f.seek(0) r = self.client.post(self.upload_url, {'images[]': [f], 'label': 'lab'}) self.assertEqual(r.status_code, 200) d = self.get_json(r) item = d['uploaded'][0] self.assertTrue(item['img_id'].endswith('_lab.jpeg')) self.assertUploadedFilesExist(d)
def test_save_file(self): f = get_img_file(create_test_image(1000, 1000)) img_id = generate_img_id('simple1', ext=image_get_format(f), label='test-save-file') relative_path = get_relative_path_from_img_id(img_id) full_path = media_path(relative_path) save_file(f, full_path) file_exists = os.path.exists(full_path) self.assertTrue(file_exists) if file_exists: f.seek(0) h1 = hashlib.md5(f.read()).hexdigest() h2 = hashlib.md5(open(full_path, 'rb').read()).hexdigest() self.assertEqual(h1, h2)
except ValueError, e: result['errors'].append(unicode(e)) return send_json(result) for i in xrange(min(len(files), dju_settings.DJU_IMG_UPLOAD_MAX_FILES)): f = files[i] if not is_image(f, types=conf['TYPES']): result['errors'].append( unicode(ERROR_MESSAGES['wrong_file_format']) % {'name': f.name, 'formats': ', '.join(map(lambda t: t.upper(), conf['TYPES']))} ) continue adjust_image(f, max_size=conf['MAX_SIZE'], new_format=conf['FORMAT'], jpeg_quality=conf['JPEG_QUALITY'], fill=conf['FILL'], stretch=conf['STRETCH']) img_id = generate_img_id(profile, ext=image_get_format(f), label=request.POST.get('label'), tmp=True) relative_path = get_relative_path_from_img_id(img_id) full_path = media_path(relative_path) save_file(f, full_path) data = { 'url': settings.MEDIA_URL + relative_path, 'rel_url': relative_path, 'img_id': img_id, 'variants': {}, } for v_conf in conf['VARIANTS']: label = v_conf['LABEL'] if not label: label = get_variant_label(v_conf) v_f = adjust_image(f, max_size=v_conf['MAX_SIZE'], new_format=v_conf['FORMAT'], jpeg_quality=v_conf['JPEG_QUALITY'], fill=v_conf['FILL'], stretch=v_conf['STRETCH'], return_new_image=True)
def test_get_relative_path_from_img_id(self): self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12.jpeg'), 'upload-img/common/34/abcde1234_ab12__m_93c87b2a66.jpeg' ) self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12'), 'upload-img/common/34/abcde1234_ab12__m_93c87b2a66' ) self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12.jpeg', ext='png'), 'upload-img/common/34/abcde1234_ab12__m_93c87b2a66.png' ) self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12', ext='png'), 'upload-img/common/34/abcde1234_ab12__m_93c87b2a66.png' ) self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12.jpeg', variant_label='test'), 'upload-img/common/34/abcde1234_ab12__v_b8a30d0227_test.jpeg' ) self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12', variant_label='test'), 'upload-img/common/34/abcde1234_ab12__v_b8a30d0227_test' ) self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12.jpeg', variant_label='test', ext='png'), 'upload-img/common/34/abcde1234_ab12__v_b8a30d0227_test.png' ) self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12', variant_label='test', ext='png'), 'upload-img/common/34/abcde1234_ab12__v_b8a30d0227_test.png' ) self.assertEqual( get_relative_path_from_img_id('default:__t_abcde1234_ab12.jpeg'), 'upload-img/common/34/__t_abcde1234_ab12__m_93c87b2a66.jpeg' ) self.assertEqual( get_relative_path_from_img_id('default:__t_abcde1234_ab12.jpeg', ext='png'), 'upload-img/common/34/__t_abcde1234_ab12__m_93c87b2a66.png' ) self.assertEqual( get_relative_path_from_img_id('default:__t_abcde1234_ab12.jpeg', variant_label='test'), 'upload-img/common/34/__t_abcde1234_ab12__v_b8a30d0227_test.jpeg' ) self.assertEqual( get_relative_path_from_img_id('default:__t_abcde1234_ab12.jpeg', variant_label='test', ext='png'), 'upload-img/common/34/__t_abcde1234_ab12__v_b8a30d0227_test.png' ) self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12_myname.jpeg'), 'upload-img/common/34/abcde1234_ab12_myname__m_93c87b2a66.jpeg' ) self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12_myname'), 'upload-img/common/34/abcde1234_ab12_myname__m_93c87b2a66' ) self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12_myname.jpeg', ext='png'), 'upload-img/common/34/abcde1234_ab12_myname__m_93c87b2a66.png' ) self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12_myname.jpeg', variant_label='test'), 'upload-img/common/34/abcde1234_ab12_myname__v_b8a30d0227_test.jpeg' ) self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12_myname.jpeg', variant_label='test', ext='png'), 'upload-img/common/34/abcde1234_ab12_myname__v_b8a30d0227_test.png' ) self.assertEqual( get_relative_path_from_img_id('default:__t_abcde1234_ab12_myname.jpeg'), 'upload-img/common/34/__t_abcde1234_ab12_myname__m_93c87b2a66.jpeg' ) self.assertEqual( get_relative_path_from_img_id('default:__t_abcde1234_ab12_myname.jpeg', ext='png'), 'upload-img/common/34/__t_abcde1234_ab12_myname__m_93c87b2a66.png' ) self.assertEqual( get_relative_path_from_img_id('default:__t_abcde1234_ab12_myname.jpeg', variant_label='test'), 'upload-img/common/34/__t_abcde1234_ab12_myname__v_b8a30d0227_test.jpeg' ) self.assertEqual( get_relative_path_from_img_id('default:__t_abcde1234_ab12_myname.jpeg', variant_label='test', ext='png'), 'upload-img/common/34/__t_abcde1234_ab12_myname__v_b8a30d0227_test.png' ) self.assertEqual( get_relative_path_from_img_id('simple0:__t_abcde1234_ab12.jpeg', variant_label='20x30'), 'upload-img/s0/34/__t_abcde1234_ab12__v_51c425ba08_20x30.png' ) self.assertEqual( get_relative_path_from_img_id('simple0:__t_abcde1234_ab12', variant_label='20x30'), 'upload-img/s0/34/__t_abcde1234_ab12__v_51c425ba08_20x30.png' ) self.assertEqual( get_relative_path_from_img_id('simple0:__t_abcde1234_ab12.jpeg', variant_label='w20'), 'upload-img/s0/34/__t_abcde1234_ab12__v_a4b31265b5_w20.gif' ) self.assertEqual( get_relative_path_from_img_id('simple0:__t_abcde1234_ab12.jpeg', variant_label='w20', ext='png'), 'upload-img/s0/34/__t_abcde1234_ab12__v_a4b31265b5_w20.png' ) self.assertEqual( get_relative_path_from_img_id('simple0:__t_abcde1234_ab12.png', variant_label='lab0'), 'upload-img/s0/34/__t_abcde1234_ab12__v_4f495406be_lab0.jpeg' ) self.assertEqual( get_relative_path_from_img_id('simple0:__t_abcde1234_ab12.png', variant_label='lab0', ext='gif'), 'upload-img/s0/34/__t_abcde1234_ab12__v_4f495406be_lab0.gif' )
def test_get_relative_path_from_img_id_with_create_dirs(self): self.assertEqual( get_relative_path_from_img_id('default:__t_abcde1234_ab12_myname.jpeg', create_dirs=True), 'upload-img/common/34/__t_abcde1234_ab12_myname__m_93c87b2a66.jpeg' ) self.assertTrue(os.path.isdir(media_path('upload-img/common/34')))
if not is_image(f, types=conf["TYPES"]): result["errors"].append( unicode(ERROR_MESSAGES["wrong_file_format"]) % {"name": f.name, "formats": ", ".join(map(lambda t: t.upper(), conf["TYPES"]))} ) continue adjust_image( f, max_size=conf["MAX_SIZE"], new_format=conf["FORMAT"], jpeg_quality=conf["JPEG_QUALITY"], fill=conf["FILL"], stretch=conf["STRETCH"], ) img_id = generate_img_id(profile, ext=image_get_format(f), label=request.POST.get("label"), tmp=True) relative_path = get_relative_path_from_img_id(img_id) full_path = media_path(relative_path) save_file(f, full_path) data = {"url": settings.MEDIA_URL + relative_path, "rel_url": relative_path, "img_id": img_id, "variants": {}} for v_conf in conf["VARIANTS"]: label = v_conf["LABEL"] if not label: label = get_variant_label(v_conf) v_f = adjust_image( f, max_size=v_conf["MAX_SIZE"], new_format=v_conf["FORMAT"], jpeg_quality=v_conf["JPEG_QUALITY"], fill=v_conf["FILL"], stretch=v_conf["STRETCH"], return_new_image=True,
def test_get_relative_path_from_img_id(self): self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12.jpeg'), 'upload-img/common/34/abcde1234_ab12__m_93c87b2a66.jpeg') self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12'), 'upload-img/common/34/abcde1234_ab12__m_93c87b2a66') self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12.jpeg', ext='png'), 'upload-img/common/34/abcde1234_ab12__m_93c87b2a66.png') self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12', ext='png'), 'upload-img/common/34/abcde1234_ab12__m_93c87b2a66.png') self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12.jpeg', variant_label='test'), 'upload-img/common/34/abcde1234_ab12__v_b8a30d0227_test.jpeg') self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12', variant_label='test'), 'upload-img/common/34/abcde1234_ab12__v_b8a30d0227_test') self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12.jpeg', variant_label='test', ext='png'), 'upload-img/common/34/abcde1234_ab12__v_b8a30d0227_test.png') self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12', variant_label='test', ext='png'), 'upload-img/common/34/abcde1234_ab12__v_b8a30d0227_test.png') self.assertEqual( get_relative_path_from_img_id('default:__t_abcde1234_ab12.jpeg'), 'upload-img/common/34/__t_abcde1234_ab12__m_93c87b2a66.jpeg') self.assertEqual( get_relative_path_from_img_id('default:__t_abcde1234_ab12.jpeg', ext='png'), 'upload-img/common/34/__t_abcde1234_ab12__m_93c87b2a66.png') self.assertEqual( get_relative_path_from_img_id('default:__t_abcde1234_ab12.jpeg', variant_label='test'), 'upload-img/common/34/__t_abcde1234_ab12__v_b8a30d0227_test.jpeg') self.assertEqual( get_relative_path_from_img_id('default:__t_abcde1234_ab12.jpeg', variant_label='test', ext='png'), 'upload-img/common/34/__t_abcde1234_ab12__v_b8a30d0227_test.png') self.assertEqual( get_relative_path_from_img_id( 'default:abcde1234_ab12_myname.jpeg'), 'upload-img/common/34/abcde1234_ab12_myname__m_93c87b2a66.jpeg') self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12_myname'), 'upload-img/common/34/abcde1234_ab12_myname__m_93c87b2a66') self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12_myname.jpeg', ext='png'), 'upload-img/common/34/abcde1234_ab12_myname__m_93c87b2a66.png') self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12_myname.jpeg', variant_label='test'), 'upload-img/common/34/abcde1234_ab12_myname__v_b8a30d0227_test.jpeg' ) self.assertEqual( get_relative_path_from_img_id('default:abcde1234_ab12_myname.jpeg', variant_label='test', ext='png'), 'upload-img/common/34/abcde1234_ab12_myname__v_b8a30d0227_test.png' ) self.assertEqual( get_relative_path_from_img_id( 'default:__t_abcde1234_ab12_myname.jpeg'), 'upload-img/common/34/__t_abcde1234_ab12_myname__m_93c87b2a66.jpeg' ) self.assertEqual( get_relative_path_from_img_id( 'default:__t_abcde1234_ab12_myname.jpeg', ext='png'), 'upload-img/common/34/__t_abcde1234_ab12_myname__m_93c87b2a66.png') self.assertEqual( get_relative_path_from_img_id( 'default:__t_abcde1234_ab12_myname.jpeg', variant_label='test'), 'upload-img/common/34/__t_abcde1234_ab12_myname__v_b8a30d0227_test.jpeg' ) self.assertEqual( get_relative_path_from_img_id( 'default:__t_abcde1234_ab12_myname.jpeg', variant_label='test', ext='png'), 'upload-img/common/34/__t_abcde1234_ab12_myname__v_b8a30d0227_test.png' ) self.assertEqual( get_relative_path_from_img_id('simple0:__t_abcde1234_ab12.jpeg', variant_label='20x30'), 'upload-img/s0/34/__t_abcde1234_ab12__v_51c425ba08_20x30.png') self.assertEqual( get_relative_path_from_img_id('simple0:__t_abcde1234_ab12', variant_label='20x30'), 'upload-img/s0/34/__t_abcde1234_ab12__v_51c425ba08_20x30.png') self.assertEqual( get_relative_path_from_img_id('simple0:__t_abcde1234_ab12.jpeg', variant_label='w20'), 'upload-img/s0/34/__t_abcde1234_ab12__v_a4b31265b5_w20.gif') self.assertEqual( get_relative_path_from_img_id('simple0:__t_abcde1234_ab12.jpeg', variant_label='w20', ext='png'), 'upload-img/s0/34/__t_abcde1234_ab12__v_a4b31265b5_w20.png') self.assertEqual( get_relative_path_from_img_id('simple0:__t_abcde1234_ab12.png', variant_label='lab0'), 'upload-img/s0/34/__t_abcde1234_ab12__v_4f495406be_lab0.jpeg') self.assertEqual( get_relative_path_from_img_id('simple0:__t_abcde1234_ab12.png', variant_label='lab0', ext='gif'), 'upload-img/s0/34/__t_abcde1234_ab12__v_4f495406be_lab0.gif')