コード例 #1
0
    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)
コード例 #2
0
    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)
コード例 #3
0
    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)
コード例 #4
0
 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)
コード例 #5
0
    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')