コード例 #1
0
 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)
コード例 #2
0
 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)
コード例 #3
0
 def setUp(self):
     super(DeleteImageTestCase, self).setUp()
     user = UserFactory.create()
     self.client.login(**{
         'username': user.username,
         'password': '******'
     })
     self.image = ImageFactory()
コード例 #4
0
 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)))
コード例 #5
0
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)
コード例 #6
0
 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)))
コード例 #7
0
 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')
コード例 #8
0
    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()
コード例 #9
0
 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')
コード例 #10
0
 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')
コード例 #11
0
 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))
コード例 #12
0
 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})
     )
コード例 #13
0
 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')
コード例 #14
0
 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'
         }
     }
コード例 #15
0
 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
                 }))
コード例 #16
0
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)
コード例 #17
0
 def setUp(self):
     self.image = ImageFactory(title="Test image")
コード例 #18
0
 def test_image_knows_file_extension(self):
     """
     Tests an image knows its file extension.
     """
     image = ImageFactory.create()
     self.assertEquals(image.file_extension, 'png')
コード例 #19
0
 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')
コード例 #20
0
 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))
コード例 #21
0
 def test_image_knows_mime_type(self):
     """
     Tests an image knows its file extension.
     """
     image = ImageFactory.create()
     self.assertEquals(image.mime_type, 'image/png')
コード例 #22
0
 def test_image_knows_file_extension(self):
     """
     Tests an image knows its file extension.
     """
     image = ImageFactory.create()
     self.assertEquals(image.file_extension, 'png')
コード例 #23
0
 def setUp(self):
     super(DeleteImageTestCase, self).setUp()
     user = UserFactory.create()
     self.client.login(**{'username': user.username, 'password': '******'})
     self.image = ImageFactory()
コード例 #24
0
 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))
コード例 #25
0
 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))