def test_can_all_create_methods(self, generate_encrypted_key, set_title): """ The encrypted key should be a created automatically. """ ImageFactory.create() self.assertEquals(1, generate_encrypted_key.call_count) self.assertEquals(1, set_title.call_count)
def setUp(self): super(DeleteImageTestCase, self).setUp() user = UserFactory.create() self.client.login(**{ 'username': user.username, 'password': '******' }) self.image = ImageFactory()
def test_can_get_images_uploaded_by_a_user(self): """ Tests that the manager can get images specifically uploaded by a user. """ user_1 = UserFactory.create() user_2 = UserFactory.create() image_1a = ImageFactory.create(uploaded_by=user_1) image_1b = ImageFactory.create(uploaded_by=user_1) image_2a = ImageFactory.create(uploaded_by=user_2) self.assertEquals([image_1b, image_1a], list(Image.objects.filter_uploaded_by(user_1))) self.assertEquals([image_2a], list(Image.objects.filter_uploaded_by(user_2)))
class DeleteImageTestCase(TestCase): """ Tests deleting an image. """ def setUp(self): super(DeleteImageTestCase, self).setUp() user = UserFactory.create() self.client.login(**{ 'username': user.username, 'password': '******' }) self.image = ImageFactory() def tearDown(self): for image in Image.objects.all(): image.delete() super(DeleteImageTestCase, self).tearDown() def test_can_delete(self): """ Tests that sending a delete to the delete URL will delete the image. """ response = self.client.delete(self.image.get_delete_url()) expected_response_dict = {'files': {self.image.title: True}} self.assertJSONEqual(response.content.decode('utf-8'), json.dumps(expected_response_dict)) self.assertRaises(Image.DoesNotExist, Image.objects.get, pk=self.image.pk) def test_must_be_logged_in_to_delete(self): """ HTTP forbids guests. """ self.client.logout() response = self.client.delete(self.image.get_delete_url()) self.assertEquals( 403, response.status_code) # Proper 403, not a redirect to login def test_must_use_delete_method(self): """ Only the DELETE method is allowed. """ self.assertEquals( 405, self.client.get(self.image.get_delete_url()).status_code) self.assertEquals( 405, self.client.post(self.image.get_delete_url()).status_code) self.assertEquals( 405, self.client.put(self.image.get_delete_url()).status_code)
def test_can_view_raw_image(self): """ If the image is requested with a file extension the raw image is sent. """ image = ImageFactory.create() response = self.client.get(image.get_raw_url()) self.assertEquals(response.get('content-type'), 'image/png')
def setUp(self): # set up images self.image = ImageFactory(title='Test image') # Set up pages ConditionPageFactory( title='condition-1', slug='condition-1', main=EditorialPage._meta.get_field('main').to_python( json.dumps([ { 'type': 'text', 'value': { 'variant': 'markdown', 'value': 'lorem ipsum' }, }, { 'type': 'image', 'value': self.image.pk } ]) ) ) self.url = reverse('export-content',) # Login self.login()
def test_can_view_image(self): """ Tests an existing image can be viewed. """ image = ImageFactory.create() response = self.client.get(image.get_absolute_url()) self.assertEquals(200, response.status_code) self.assertIsInstance(response.context['view'], DetailView) self.assertTemplateUsed(response, 'images/image_detail.html')
def test_returns_true_for_uploaded(self): """ If the user uploaded the image it should return true. """ image = ImageFactory.create() adaptor_field = MagicMock() adaptor_field.obj = image adaptor_field.request.user = image.uploaded_by self.assertTrue(UploadedByEditInline.can_edit(adaptor_field))
def test_image_knows_raw_url(self): """ Tests an image knows its file extension. """ image = ImageFactory.create(pk=1) self.assertEquals( image.get_raw_url(), reverse('images:image_detail_raw', kwargs={'slug': image.encrypted_key, 'extension': image.file_extension}) )
def setUp(self): super().setUp() self.image = ImageFactory(title='test image') self.default_image_data = { 'type': 'image', 'props': { 'id': self.image.id, 'caption': 'some caption text', 'alt': 'some alt' } }
def test_image_knows_raw_url(self): """ Tests an image knows its file extension. """ image = ImageFactory.create(pk=1) self.assertEquals( image.get_raw_url(), reverse('images:image_detail_raw', kwargs={ 'slug': image.encrypted_key, 'extension': image.file_extension }))
class DeleteImageTestCase(TestCase): """ Tests deleting an image. """ def setUp(self): super(DeleteImageTestCase, self).setUp() user = UserFactory.create() self.client.login(**{'username': user.username, 'password': '******'}) self.image = ImageFactory() def tearDown(self): for image in Image.objects.all(): image.delete() super(DeleteImageTestCase, self).tearDown() def test_can_delete(self): """ Tests that sending a delete to the delete URL will delete the image. """ response = self.client.delete(self.image.get_delete_url()) expected_response_dict = {'files': {self.image.title: True}} self.assertJSONEqual(response.content.decode('utf-8'), json.dumps(expected_response_dict)) self.assertRaises(Image.DoesNotExist, Image.objects.get, pk=self.image.pk) def test_must_be_logged_in_to_delete(self): """ HTTP forbids guests. """ self.client.logout() response = self.client.delete(self.image.get_delete_url()) self.assertEquals(403, response.status_code) # Proper 403, not a redirect to login def test_must_use_delete_method(self): """ Only the DELETE method is allowed. """ self.assertEquals(405, self.client.get(self.image.get_delete_url()).status_code) self.assertEquals(405, self.client.post(self.image.get_delete_url()).status_code) self.assertEquals(405, self.client.put(self.image.get_delete_url()).status_code)
def setUp(self): self.image = ImageFactory(title="Test image")
def test_image_knows_file_extension(self): """ Tests an image knows its file extension. """ image = ImageFactory.create() self.assertEquals(image.file_extension, 'png')
def test_image_knows_mime_type(self): """ Tests an image knows its file extension. """ image = ImageFactory.create() self.assertEquals(image.mime_type, b'image/png')
def test_returns_false_for_anonymous_users(self): image = ImageFactory.create() adaptor_field = MagicMock() adaptor_field.obj = image adaptor_field.request.user = AnonymousUser() self.assertFalse(UploadedByEditInline.can_edit(adaptor_field))
def test_image_knows_mime_type(self): """ Tests an image knows its file extension. """ image = ImageFactory.create() self.assertEquals(image.mime_type, 'image/png')
def setUp(self): super(DeleteImageTestCase, self).setUp() user = UserFactory.create() self.client.login(**{'username': user.username, 'password': '******'}) self.image = ImageFactory()
def test_can_get_latest_images(self, make_thumbnail): """ Tests the list of latest images can be returned. :return: """ make_thumbnail.return_value = 'thumbnail' ImageFactory.create(uploaded_by=self.user) image_1 = ImageFactory.create(uploaded_by=self.user) image_2 = ImageFactory.create(uploaded_by=self.user) image_3 = ImageFactory.create(uploaded_by=self.user) image_4 = ImageFactory.create(uploaded_by=self.user) image_5 = ImageFactory.create(uploaded_by=self.user) image_6 = ImageFactory.create(uploaded_by=self.user) image_7 = ImageFactory.create(uploaded_by=self.user) image_8 = ImageFactory.create(uploaded_by=self.user) image_9 = ImageFactory.create(uploaded_by=self.user) image_10 = ImageFactory.create(uploaded_by=self.user) response = self.client.get(reverse('images:latest_images')) expected_response_dict = { 'results': [ { 'title': image_10.title, 'thumbnail': 'thumbnail', 'url': image_10.get_absolute_url() }, { 'title': image_9.title, 'thumbnail': 'thumbnail', 'url': image_9.get_absolute_url() }, { 'title': image_8.title, 'thumbnail': 'thumbnail', 'url': image_8.get_absolute_url() }, { 'title': image_7.title, 'thumbnail': 'thumbnail', 'url': image_7.get_absolute_url() }, { 'title': image_6.title, 'thumbnail': 'thumbnail', 'url': image_6.get_absolute_url() }, { 'title': image_5.title, 'thumbnail': 'thumbnail', 'url': image_5.get_absolute_url() }, { 'title': image_4.title, 'thumbnail': 'thumbnail', 'url': image_4.get_absolute_url() }, { 'title': image_3.title, 'thumbnail': 'thumbnail', 'url': image_3.get_absolute_url() }, { 'title': image_2.title, 'thumbnail': 'thumbnail', 'url': image_2.get_absolute_url() }, { 'title': image_1.title, 'thumbnail': 'thumbnail', 'url': image_1.get_absolute_url() }, ] } self.assertJSONEqual(response.content.decode('utf-8'), json.dumps(expected_response_dict))
def test_can_get_latest_images(self, make_thumbnail): """ Tests the list of latest images can be returned. :return: """ make_thumbnail.return_value = 'thumbnail' ImageFactory.create(uploaded_by=self.user) image_1 = ImageFactory.create(uploaded_by=self.user) image_2 = ImageFactory.create(uploaded_by=self.user) image_3 = ImageFactory.create(uploaded_by=self.user) image_4 = ImageFactory.create(uploaded_by=self.user) image_5 = ImageFactory.create(uploaded_by=self.user) image_6 = ImageFactory.create(uploaded_by=self.user) image_7 = ImageFactory.create(uploaded_by=self.user) image_8 = ImageFactory.create(uploaded_by=self.user) image_9 = ImageFactory.create(uploaded_by=self.user) image_10 = ImageFactory.create(uploaded_by=self.user) response = self.client.get(reverse('images:latest_images')) expected_response_dict = { 'results': [ {'title': image_10.title, 'thumbnail': 'thumbnail', 'url': image_10.get_absolute_url()}, {'title': image_9.title, 'thumbnail': 'thumbnail', 'url': image_9.get_absolute_url()}, {'title': image_8.title, 'thumbnail': 'thumbnail', 'url': image_8.get_absolute_url()}, {'title': image_7.title, 'thumbnail': 'thumbnail', 'url': image_7.get_absolute_url()}, {'title': image_6.title, 'thumbnail': 'thumbnail', 'url': image_6.get_absolute_url()}, {'title': image_5.title, 'thumbnail': 'thumbnail', 'url': image_5.get_absolute_url()}, {'title': image_4.title, 'thumbnail': 'thumbnail', 'url': image_4.get_absolute_url()}, {'title': image_3.title, 'thumbnail': 'thumbnail', 'url': image_3.get_absolute_url()}, {'title': image_2.title, 'thumbnail': 'thumbnail', 'url': image_2.get_absolute_url()}, {'title': image_1.title, 'thumbnail': 'thumbnail', 'url': image_1.get_absolute_url()}, ] } self.assertJSONEqual(response.content.decode('utf-8'), json.dumps(expected_response_dict))