def test_image_optimization(self):
     instance = IconFactory.build()
     instance.image.file = self._build_in_memory_uploaded_file()
     with patch('snippets.base.models.subprocess.run',
                wraps=subprocess.run) as run_mock:
         instance.clean()
     self.assertTrue(run_mock.called)
 def test_invalid_size(self):
     instance = IconFactory.build()
     instance.image.file = self._build_in_memory_uploaded_file()
     try:
         instance.clean()
     except ValidationError as e:
         self.assertEqual(
             e.message_dict['image'],
             ['Upload an image less than 0 KiB. This image is 0 KiB.'])
 def test_invalid_dimensions(self):
     instance = IconFactory.build()
     instance.image.file = self._build_in_memory_uploaded_file()
     try:
         instance.clean()
     except ValidationError as e:
         self.assertEqual(
             e.message_dict['image'],
             ['Upload an image at most 20x20. This image is 30x30.'])
    def test_update_icon_generate_new_filename(self):
        icon = IconFactory()
        old_name = icon.image.name

        # Simplest way to test with a new image is to create a new Icon with
        # IconFactory
        new_icon = IconFactory()
        icon.image = File(new_icon.image.file.open())
        icon.save()
        icon.refresh_from_db()
        self.assertNotEqual(icon.image.name, old_name)
示例#5
0
    def test_modified_date_updates_when_icon_updates(self):
        snippet = ASRSnippetFactory()
        old_modified = snippet.modified

        template = snippet.template_ng
        template.icon = IconFactory()
        template.save()

        snippet.refresh_from_db()
        new_modified = snippet.modified

        self.assertNotEqual(old_modified, new_modified)
    def test_modified_date_updates_when_icon_updates(self):
        snippet = ASRSnippetFactory()
        # Must refresh from db to get the actual datetime stored in db which
        # may be different by milliseconds from the original python datetime.
        snippet.refresh_from_db()
        old_modified = snippet.modified

        template = snippet.template_ng
        template.icon = IconFactory()
        template.save()

        snippet.refresh_from_db()
        new_modified = snippet.modified

        self.assertNotEqual(old_modified, new_modified)
 def test_invalid_image(self):
     instance = IconFactory.build()
     img = Image.new('RGB', (30, 30), color='red')
     fle = io.BytesIO()
     img.save(fle, 'JPEG')
     fle.seek(0)
     size = len(fle.read())
     fle.seek(0)
     instance.image.file = InMemoryUploadedFile(fle, 'ImageField',
                                                'foo.jpeg', 'image/jpeg',
                                                size, None)
     try:
         instance.clean()
     except ValidationError as e:
         self.assertEqual(e.message_dict['image'],
                          ['Upload only PNG images.'])
 def test_valid_image_png(self):
     instance = IconFactory.build()
     instance.image.file = self._build_in_memory_uploaded_file()
     self.assertIsNone(instance.clean())
 def test_size_test_disabled(self):
     instance = IconFactory.build()
     instance.image.file = self._build_in_memory_uploaded_file()
     self.assertIsNone(instance.clean())
示例#10
0
 def test_dont_process_when_setting_off(self):
     instance = IconFactory()
     instance.image.file = self._build_in_memory_uploaded_file()
     with patch('snippets.base.models.subprocess.run') as run_mock:
         instance.clean()
     self.assertFalse(run_mock.called)
示例#11
0
 def test_dont_process_existing_files(self):
     instance = IconFactory.build()
     with patch('snippets.base.models.subprocess.run') as run_mock:
         instance.clean()
     self.assertFalse(run_mock.called)
示例#12
0
 def test_generate_new_filename(self, uuid_mock):
     uuid_mock.uuid4.return_value = 'bar'
     icon = IconFactory(image__filename='upload.png')
     self.assertEqual(icon.image.name, 'filesroot/bar.png')