def test_pre_save(self): p = Poll() p.image = SimpleUploadedFile(TEST_IMAGE, b'') c = CloudinaryField('image', width_field="image_width", height_field="image_height") c.set_attributes_from_name('image') mocked_resource = cloudinary.CloudinaryResource(metadata={"width": TEST_IMAGE_W, "height": TEST_IMAGE_H}, type="upload", public_id=TEST_IMAGE, resource_type="image") with mock.patch('cloudinary.uploader.upload_resource', return_value=mocked_resource) as upload_mock: prep_value = c.pre_save(p, None) self.assertTrue(upload_mock.called) self.assertEqual(".png", os.path.splitext(prep_value)[1]) self.assertEqual(TEST_IMAGE_W, p.image_width) self.assertEqual(TEST_IMAGE_H, p.image_height) # check empty values handling p.image = SimpleUploadedFile(TEST_IMAGE, b'') mocked_resource_empty = cloudinary.CloudinaryResource(metadata={}) with mock.patch('cloudinary.uploader.upload_resource', return_value=mocked_resource_empty) as upload_mock: c.pre_save(p, None) self.assertTrue(upload_mock.called) self.assertIsNone(p.image_width) self.assertIsNone(p.image_height)
def test_pre_save(self): c = CloudinaryField('image', width_field="image_width", height_field="image_height") c.set_attributes_from_name('image') mocked_resource = cloudinary.CloudinaryResource(metadata={ "width": TEST_IMAGE_W, "height": TEST_IMAGE_H }, type="upload", public_id=TEST_IMAGE, resource_type="image") with mock.patch('cloudinary.uploader.upload_resource', return_value=mocked_resource) as upload_mock: prep_value = c.pre_save(self.p, None) self.assertTrue(upload_mock.called) self.assertEqual(".png", os.path.splitext(prep_value)[1]) self.assertEqual(TEST_IMAGE_W, self.p.image_width) self.assertEqual(TEST_IMAGE_H, self.p.image_height) # check empty values handling self.p.image = SimpleUploadedFile(TEST_IMAGE, b'') mocked_resource_empty = cloudinary.CloudinaryResource(metadata={}) with mock.patch('cloudinary.uploader.upload_resource', return_value=mocked_resource_empty) as upload_mock: c.pre_save(self.p, None) self.assertTrue(upload_mock.called) self.assertIsNone(self.p.image_width) self.assertIsNone(self.p.image_height)
def test_upload_options_with_filename(self): c = CloudinaryField('image', filename=UNIQUE_TEST_ID) c.set_attributes_from_name('image') mocked_resource = cloudinary.CloudinaryResource(type="upload", public_id=TEST_IMAGE, resource_type="image") with mock.patch('cloudinary.uploader.upload_resource', return_value=mocked_resource) as upload_mock: c.pre_save(self.p, None) self.assertTrue(upload_mock.called) self.assertEqual(upload_mock.call_args[1]['filename'], UNIQUE_TEST_ID)
def test_pre_save(self): p = Poll() with open(TEST_IMAGE, 'rb') as test_image_file: p.image = SimpleUploadedFile(test_image_file.name, test_image_file.read()) c = CloudinaryField('image', width_field="image_width", height_field="image_height") c.set_attributes_from_name('image') prep_value = c.pre_save(p, None) self.assertEqual(".png", os.path.splitext(prep_value)[1]) self.assertEqual(241, p.image_width) self.assertEqual(51, p.image_height)
def test_upload_options(self): c = CloudinaryField('image', width_field="image_width", height_field="image_height", unique_filename='true', use_filename='true', phash='true') c.set_attributes_from_name('image') mocked_resource = cloudinary.CloudinaryResource(metadata={ "width": TEST_IMAGE_W, "height": TEST_IMAGE_H }, type="upload", public_id=TEST_IMAGE, resource_type="image") with mock.patch('cloudinary.uploader.upload_resource', return_value=mocked_resource) as upload_mock: c.pre_save(self.p, None) self.assertTrue(upload_mock.called) self.assertEqual(upload_mock.call_args[1]['unique_filename'], 'true') self.assertEqual(upload_mock.call_args[1]['use_filename'], 'true') self.assertEqual(upload_mock.call_args[1]['phash'], 'true')