Ejemplo n.º 1
0
    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'])
Ejemplo n.º 2
0
 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]})
Ejemplo n.º 3
0
 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'])
Ejemplo n.º 4
0
 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'])
Ejemplo n.º 5
0
    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'])
Ejemplo n.º 6
0
 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'])
Ejemplo n.º 7
0
 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'])
Ejemplo n.º 8
0
 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]})
Ejemplo n.º 9
0
 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)
Ejemplo n.º 10
0
        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))
Ejemplo n.º 11
0
 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)
Ejemplo n.º 12
0
        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))