def test_get_files_by_img_id(self): r = self.client.post( self.upload_url, { 'images[]': [ get_img_file(create_test_image(1000, 1000)), get_img_file(create_test_image(900, 900)), get_img_file(create_test_image(800, 800)), get_img_file(create_test_image(700, 700)), ], 'profile': 'simple1', }) self.assertEqual(r.status_code, 200) d = self.get_json(r) self.assertEqual(len(d['uploaded']), dju_settings.DJU_IMG_UPLOAD_MAX_FILES) self.assertEqual(len(d['errors']), 0) self.assertUploadedFilesExist(d) for item in d['uploaded']: r = get_files_by_img_id(item['img_id']) self.assertEqual(r['main'], item['rel_url']) self.assertEqual(len(item['variants']), len(r['variants'])) for var_label, var_data in item['variants'].iteritems(): self.assertEqual(r['variants'][var_label], var_data['rel_url']) r = self.client.post( self.upload_url, { 'images[]': [ get_img_file(create_test_image(1000, 1000)), get_img_file(create_test_image(900, 900)), get_img_file(create_test_image(800, 800)), get_img_file(create_test_image(700, 700)), ], 'profile': 'simple1', 'label': 'world1', }) self.assertEqual(r.status_code, 200) d = self.get_json(r) self.assertEqual(len(d['uploaded']), dju_settings.DJU_IMG_UPLOAD_MAX_FILES) self.assertEqual(len(d['errors']), 0) self.assertUploadedFilesExist(d) for item in d['uploaded']: r = get_files_by_img_id(item['img_id']) self.assertEqual(r['main'], item['rel_url']) self.assertEqual(len(item['variants']), len(r['variants'])) for var_label, var_data in item['variants'].iteritems(): self.assertEqual(r['variants'][var_label], var_data['rel_url'])
def test_make_permalink(self): r = self.client.post(self.upload_url, { 'images[]': [ get_img_file(create_test_image(1000, 1000)), get_img_file(create_test_image(900, 900)), get_img_file(create_test_image(800, 800)), get_img_file(create_test_image(700, 700)), ], 'profile': 'simple0', 'label': 'world0', }) self.assertEqual(r.status_code, 200) d = self.get_json(r) self.assertEqual(len(d['uploaded']), dju_settings.DJU_IMG_UPLOAD_MAX_FILES) self.assertEqual(len(d['errors']), 0) self.assertUploadedFilesExist(d) for item in d['uploaded']: new_img_id = make_permalink(item['img_id']) files = get_files_by_img_id(new_img_id) self.assertEqual(files['main'], remove_tmp_prefix_from_file_path(item['rel_url'])) new_item = { 'rel_url': files['main'], 'variants': {}, } for var_label, var_data in item['variants'].iteritems(): self.assertEqual( files['variants'][var_label], remove_tmp_prefix_from_file_path(var_data['rel_url']) ) new_item['variants'][var_label] = {'rel_url': files['variants'][var_label]} self.assertUploadedFilesExist({'uploaded': [new_item]})
def test_get_files_by_img_id_removed_variants_ext(self): r = self.client.post(self.upload_url, { 'images[]': [ get_img_file(create_test_image(1000, 1000)), get_img_file(create_test_image(900, 900)), get_img_file(create_test_image(800, 800)), get_img_file(create_test_image(700, 700)), ], 'profile': 'simple0', 'label': 'world0', }) self.assertEqual(r.status_code, 200) d = self.get_json(r) self.assertEqual(len(d['uploaded']), dju_settings.DJU_IMG_UPLOAD_MAX_FILES) self.assertEqual(len(d['errors']), 0) self.assertUploadedFilesExist(d) for item in d['uploaded']: # for i in xrange(len(item['variants'])): for var_data in item['variants'].values(): # remove ext for all variants files rel_url = var_data['rel_url'] rel_url_new = os.path.splitext(rel_url)[0] os.rename(media_path(rel_url), media_path(rel_url_new)) var_data['rel_url'] = rel_url_new r = get_files_by_img_id(item['img_id']) self.assertEqual(r['main'], item['rel_url']) self.assertEqual(len(item['variants']), len(r['variants'])) for var_label, var_data in item['variants'].iteritems(): self.assertEqual(r['variants'][var_label], var_data['rel_url'])
def test_get_files_by_img_id_removed_variants_ext(self): r = self.client.post( self.upload_url, { 'images[]': [ get_img_file(create_test_image(1000, 1000)), get_img_file(create_test_image(900, 900)), get_img_file(create_test_image(800, 800)), get_img_file(create_test_image(700, 700)), ], 'profile': 'simple0', 'label': 'world0', }) self.assertEqual(r.status_code, 200) d = self.get_json(r) self.assertEqual(len(d['uploaded']), dju_settings.DJU_IMG_UPLOAD_MAX_FILES) self.assertEqual(len(d['errors']), 0) self.assertUploadedFilesExist(d) for item in d['uploaded']: # for i in xrange(len(item['variants'])): for var_data in item['variants'].values(): # remove ext for all variants files rel_url = var_data['rel_url'] rel_url_new = os.path.splitext(rel_url)[0] os.rename(media_path(rel_url), media_path(rel_url_new)) var_data['rel_url'] = rel_url_new r = get_files_by_img_id(item['img_id']) self.assertEqual(r['main'], item['rel_url']) self.assertEqual(len(item['variants']), len(r['variants'])) for var_label, var_data in item['variants'].iteritems(): self.assertEqual(r['variants'][var_label], var_data['rel_url'])
def test_get_files_by_img_id(self): r = self.client.post(self.upload_url, { 'images[]': [ get_img_file(create_test_image(1000, 1000)), get_img_file(create_test_image(900, 900)), get_img_file(create_test_image(800, 800)), get_img_file(create_test_image(700, 700)), ], 'profile': 'simple1', }) self.assertEqual(r.status_code, 200) d = self.get_json(r) self.assertEqual(len(d['uploaded']), dju_settings.DJU_IMG_UPLOAD_MAX_FILES) self.assertEqual(len(d['errors']), 0) self.assertUploadedFilesExist(d) for item in d['uploaded']: r = get_files_by_img_id(item['img_id']) self.assertEqual(r['main'], item['rel_url']) self.assertEqual(len(item['variants']), len(r['variants'])) for var_label, var_data in item['variants'].iteritems(): self.assertEqual(r['variants'][var_label], var_data['rel_url']) r = self.client.post(self.upload_url, { 'images[]': [ get_img_file(create_test_image(1000, 1000)), get_img_file(create_test_image(900, 900)), get_img_file(create_test_image(800, 800)), get_img_file(create_test_image(700, 700)), ], 'profile': 'simple1', 'label': 'world1', }) self.assertEqual(r.status_code, 200) d = self.get_json(r) self.assertEqual(len(d['uploaded']), dju_settings.DJU_IMG_UPLOAD_MAX_FILES) self.assertEqual(len(d['errors']), 0) self.assertUploadedFilesExist(d) for item in d['uploaded']: r = get_files_by_img_id(item['img_id']) self.assertEqual(r['main'], item['rel_url']) self.assertEqual(len(item['variants']), len(r['variants'])) for var_label, var_data in item['variants'].iteritems(): self.assertEqual(r['variants'][var_label], var_data['rel_url'])
def test_get_files_by_img_id_with_invalid_hash_and_filename_pattern(self): r = self.client.post(self.upload_url, { 'images[]': [ get_img_file(create_test_image(1000, 1000)), get_img_file(create_test_image(900, 900)), get_img_file(create_test_image(800, 800)), get_img_file(create_test_image(700, 700)), ], 'profile': 'simple0', 'label': 'world0', }) self.assertEqual(r.status_code, 200) d = self.get_json(r) self.assertEqual(len(d['uploaded']), dju_settings.DJU_IMG_UPLOAD_MAX_FILES) self.assertEqual(len(d['errors']), 0) self.assertUploadedFilesExist(d) for item in d['uploaded']: for var_data in item['variants'].values(): # add file with invalid hash rel_url = var_data['rel_url'] rel_url_new = re.sub( r'({suf})[a-z0-9]{{hs}}(_.+)'.replace( '{suf}', dju_settings.DJU_IMG_UPLOAD_VARIANT_SUFFIX ).replace( '{hs}', str(HASH_SIZE) ), r'\1{h}\2'.replace('{h}', 'z' * HASH_SIZE), rel_url ) shutil.copy(media_path(rel_url), media_path(rel_url_new)) # add file with invalid filename pattern rel_url = var_data['rel_url'] rel_url_new = re.sub( r'({suf})[a-z0-9]{{hs}}(_.+)'.replace( '{suf}', dju_settings.DJU_IMG_UPLOAD_VARIANT_SUFFIX ).replace( '{hs}', str(HASH_SIZE) ), r'\1{h}\2'.replace('{h}', 'z' * (HASH_SIZE + 1)), rel_url ) shutil.copy(media_path(rel_url), media_path(rel_url_new)) r = get_files_by_img_id(item['img_id']) self.assertEqual(r['main'], item['rel_url']) self.assertEqual(len(item['variants']), len(r['variants'])) for var_label, var_data in item['variants'].iteritems(): self.assertEqual(r['variants'][var_label], var_data['rel_url'])
def test_get_files_by_img_id_with_invalid_hash_and_filename_pattern(self): r = self.client.post( self.upload_url, { 'images[]': [ get_img_file(create_test_image(1000, 1000)), get_img_file(create_test_image(900, 900)), get_img_file(create_test_image(800, 800)), get_img_file(create_test_image(700, 700)), ], 'profile': 'simple0', 'label': 'world0', }) self.assertEqual(r.status_code, 200) d = self.get_json(r) self.assertEqual(len(d['uploaded']), dju_settings.DJU_IMG_UPLOAD_MAX_FILES) self.assertEqual(len(d['errors']), 0) self.assertUploadedFilesExist(d) for item in d['uploaded']: for var_data in item['variants'].values(): # add file with invalid hash rel_url = var_data['rel_url'] rel_url_new = re.sub( r'({suf})[a-z0-9]{{hs}}(_.+)'.replace( '{suf}', dju_settings.DJU_IMG_UPLOAD_VARIANT_SUFFIX).replace( '{hs}', str(HASH_SIZE)), r'\1{h}\2'.replace('{h}', 'z' * HASH_SIZE), rel_url) shutil.copy(media_path(rel_url), media_path(rel_url_new)) # add file with invalid filename pattern rel_url = var_data['rel_url'] rel_url_new = re.sub( r'({suf})[a-z0-9]{{hs}}(_.+)'.replace( '{suf}', dju_settings.DJU_IMG_UPLOAD_VARIANT_SUFFIX).replace( '{hs}', str(HASH_SIZE)), r'\1{h}\2'.replace('{h}', 'z' * (HASH_SIZE + 1)), rel_url) shutil.copy(media_path(rel_url), media_path(rel_url_new)) r = get_files_by_img_id(item['img_id']) self.assertEqual(r['main'], item['rel_url']) self.assertEqual(len(item['variants']), len(r['variants'])) for var_label, var_data in item['variants'].iteritems(): self.assertEqual(r['variants'][var_label], var_data['rel_url'])
def test_make_permalink(self): r = self.client.post( self.upload_url, { 'images[]': [ get_img_file(create_test_image(1000, 1000)), get_img_file(create_test_image(900, 900)), get_img_file(create_test_image(800, 800)), get_img_file(create_test_image(700, 700)), ], 'profile': 'simple0', 'label': 'world0', }) self.assertEqual(r.status_code, 200) d = self.get_json(r) self.assertEqual(len(d['uploaded']), dju_settings.DJU_IMG_UPLOAD_MAX_FILES) self.assertEqual(len(d['errors']), 0) self.assertUploadedFilesExist(d) for item in d['uploaded']: new_img_id = make_permalink(item['img_id']) files = get_files_by_img_id(new_img_id) self.assertEqual(files['main'], remove_tmp_prefix_from_file_path(item['rel_url'])) new_item = { 'rel_url': files['main'], 'variants': {}, } for var_label, var_data in item['variants'].iteritems(): self.assertEqual( files['variants'][var_label], remove_tmp_prefix_from_file_path(var_data['rel_url'])) new_item['variants'][var_label] = { 'rel_url': files['variants'][var_label] } self.assertUploadedFilesExist({'uploaded': [new_item]})
def test_get_files_by_img_id_file_is_not_exists(self): r = get_files_by_img_id(generate_img_id('simple0')) self.assertIsNone(r)
try: img_id = upload_from_fs(fn) except (ValueError, RuntimeError), e: raise self.failureException(e) else: self.assertTrue(is_img_id_valid(img_id)) self.assertTrue(is_img_id_exists(img_id)) with self.assertRaises(ValueError): upload_from_fs('none') fn = save_img_file('t2.jpeg', create_test_image(500, 500)) with self.assertRaises(RuntimeError): upload_from_fs(fn, profile='simple2') fn = save_img_file('t3.jpeg', create_test_image(400, 400)) try: img_id = upload_from_fs(fn, profile='simple1', label='ttt') except (ValueError, RuntimeError), e: raise self.failureException(e) else: self.assertTrue(is_img_id_valid(img_id)) self.assertTrue(is_img_id_exists(img_id)) self.assertTrue(get_files_by_img_id(img_id)['variants']) def test_img_id_has_tmp_prefix(self): img_id = generate_img_id('none', ext='png', label='zz', tmp=False) img_id_tmp = generate_img_id('none', ext='png', label='zz', tmp=True) self.assertTrue(img_id_has_tmp_prefix(img_id_tmp)) self.assertFalse(img_id_has_tmp_prefix(img_id))
with self.assertRaises(ValueError): upload_from_fs('none') fn = save_img_file('t2.jpeg', create_test_image(500, 500)) with self.assertRaises(RuntimeError): upload_from_fs(fn, profile='simple2') fn = save_img_file('t3.jpeg', create_test_image(400, 400)) try: img_id = upload_from_fs(fn, profile='simple1', label='ttt') except (ValueError, RuntimeError), e: raise self.failureException(e) else: self.assertTrue(is_img_id_valid(img_id)) self.assertTrue(is_img_id_exists(img_id)) self.assertTrue(get_files_by_img_id(img_id)['variants']) def test_upload_from_fileobject(self): f = get_img_file(create_test_image(600, 600)) try: img_id = upload_from_fileobject(f) except (ValueError, RuntimeError), e: raise self.failureException(e) else: self.assertTrue(is_img_id_valid(img_id)) self.assertTrue(is_img_id_exists(img_id)) with self.assertRaises(ValueError): upload_from_fs('none') f = get_img_file(create_test_image(500, 500))