Example #1
0
    def post(self, user, data=None):
        if user.is_anonymous and not User.objects.filter(
                display_name='AnonymousUser').exists():
            UserFactory.create(display_name='AnonymousUser')

        if data is None:
            data = {
                'name': 'A test image',
                'description': 'Test image description',
                'file': get_image()
            }

        url = reverse(
            'api:project_media',
            kwargs={
                'project_id': self.project.id,
                'contribution_id': self.contribution.id
            }
        )

        request = self.factory.post(url, data)
        force_authenticate(request, user)
        view = AllContributionsMediaAPIView.as_view()
        return view(
            request,
            project_id=self.project.id,
            contribution_id=self.contribution.id
        ).render()
Example #2
0
    def test_create_image_and_respond(self):
        url = reverse('api:project_media',
                      kwargs={
                          'project_id': self.project.id,
                          'contribution_id': self.contribution.id
                      })

        data = {
            'name': 'A test image',
            'description': 'Test image description',
            'file': get_image()
        }

        request = self.factory.post(url, data)
        request.user = self.admin
        view = MediaAbstractAPIView()
        view.request = request

        response = self.render(
            view.create_and_respond(request, self.contribution))

        response_json = json.loads(response.content)
        self.assertEqual(response_json.get('name'), data.get('name'))
        self.assertEqual(response_json.get('description'),
                         data.get('description'))
        self.assertEqual(
            response_json.get('creator').get('display_name'),
            request.user.display_name)
        self.assertEqual(response_json.get('file_type'), 'ImageFile')
        self.assertIsNotNone(response_json.get('url'))
Example #3
0
    def post(self, user, data=None):
        if user.is_anonymous and not User.objects.filter(
                display_name='AnonymousUser').exists():
            UserFactory.create(display_name='AnonymousUser')

        if data is None:
            data = {
                'name': 'A test image',
                'description': 'Test image description',
                'file': get_image()
            }

        url = reverse(
            'api:project_media',
            kwargs={
                'project_id': self.project.id,
                'contribution_id': self.contribution.id
            }
        )

        request = self.factory.post(url, data)
        force_authenticate(request, user)
        view = MediaAPIView.as_view()
        return view(
            request,
            project_id=self.project.id,
            contribution_id=self.contribution.id
        ).render()
Example #4
0
    def process_list_of_image_files(self, files_list):

        for name, file_path, expected_output_file in files_list:
            url = reverse('api:project_media',
                          kwargs={
                              'project_id': self.project.id,
                              'contribution_id': self.contribution.id
                          })

            data = {
                'name': name,
                'description': 'Test image description',
                'file': get_image(file_name=file_path)
            }

            request = self.factory.post(url, data)
            request.user = self.admin
            view = MediaAbstractAPIView()
            view.request = request

            response = self.render(
                view.create_and_respond(request, self.contribution))

            response_json = json.loads(response.content)
            self.assertEqual(response_json.get('name'), data.get('name'))
            self.assertEqual(response_json.get('description'),
                             data.get('description'))
            self.assertEqual(
                response_json.get('creator').get('display_name'),
                request.user.display_name)
            self.assertEqual(response_json.get('file_type'), 'ImageFile')
            self.assertIsNotNone(response_json.get('url'))
            self.assertIn(expected_output_file, response_json.get('url'))
Example #5
0
class MultipleLookupValueFactory(factory.django.DjangoModelFactory):
    class Meta:
        model = MultipleLookupValue

    name = factory.Sequence(lambda n: 'multiplelookupvalue %s' % n)
    symbol = get_image(file_name='test_lookup_value_symbol.png')
    field = factory.SubFactory(MultipleLookupFieldFactory)
    status = 'active'
Example #6
0
class AudioFileFactory(factory.django.DjangoModelFactory):
    class Meta:
        model = AudioFile

    name = factory.Sequence(lambda n: 'name_%d' % n)
    description = factory.LazyAttribute(lambda o: '%s description' % o.name)
    creator = factory.SubFactory(UserFactory)
    contribution = factory.SubFactory(ObservationFactory)
    audio = get_image()
Example #7
0
    def test_create_image(self):
        image_file = MediaFile.objects.create(
            name='Test name',
            description='Test Description',
            contribution=ObservationFactory.create(),
            creator=UserFactory.create(),
            the_file=get_image())

        self.assertIsNotNone(image_file.image)
        self.assertEqual(image_file.type_name, 'ImageFile')
Example #8
0
    def test_upload_with_loooooong_filename(self):
        data = {
            'name': 'A test image ',
            'description': 'Test image description',
            'file': get_image(file_name='One two three four six seven eight '
                                        'nine ten eleven twelve thirteen '
                                        'fourteen fifteen.png')
        }

        response = self.post(self.admin, data=data)
        self.assertEqual(response.status_code, 201)
Example #9
0
    def test_create_image(self):
        image_file = MediaFile.objects.create(
            name='Test name',
            description='Test Description',
            contribution=ObservationFactory.create(),
            creator=UserFactory.create(),
            the_file=get_image()
        )

        self.assertIsNotNone(image_file.image)
        self.assertEqual(image_file.type_name, 'ImageFile')
Example #10
0
    def test_upload_with_loooooong_filename(self):
        data = {
            'name': 'A test image ',
            'description': 'Test image description',
            'file': get_image(file_name='One two three four six seven eight '
                                        'nine ten eleven twelve thirteen '
                                        'fourteen fifteen.png')
        }

        response = self.post(self.admin, data=data)
        self.assertEqual(response.status_code, 201)
Example #11
0
    def test_get_symbol(self):
        """Test getting correct URL for symbol."""
        webresource_1 = WebResourceFactory.create()
        webresource_2 = WebResourceFactory.create(
            symbol=image_helpers.get_image(file_name='test_serializer.png'))

        serializer = WebResourceSerializer(webresource_1)
        reference = serializer.get_symbol(webresource_1)
        self.assertIsNone(reference)

        serializer = WebResourceSerializer(webresource_2)
        reference = serializer.get_symbol(webresource_2)
        self.assertIn('test_serializer.png', reference)

        webresource_2.symbol.delete()
Example #12
0
    def test_create_image_and_respond_without_name(self):
        url = reverse('api:project_media',
                      kwargs={
                          'project_id': self.project.id,
                          'contribution_id': self.contribution.id
                      })

        data = {'description': 'Test image description', 'file': get_image()}

        request = self.factory.post(url, data)
        request.user = self.admin
        view = MediaAbstractAPIView()
        view.request = request

        view.create_and_respond(request, self.contribution)
    def test_get_symbol(self):
        """Test getting correct URL for symbol."""
        webresource_1 = WebResourceFactory.create()
        webresource_2 = WebResourceFactory.create(
            symbol=image_helpers.get_image(file_name='test_serializer.png')
        )

        serializer = WebResourceSerializer(webresource_1)
        reference = serializer.get_symbol(webresource_1)
        self.assertIsNone(reference)

        serializer = WebResourceSerializer(webresource_2)
        reference = serializer.get_symbol(webresource_2)
        self.assertIn('test_serializer.png', reference)

        webresource_2.symbol.delete()
Example #14
0
    def process_list_of_image_files(self, files_list):

        for name, file_path, expected_output_file in files_list:
            url = reverse(
                'api:project_media',
                kwargs={
                    'project_id': self.project.id,
                    'contribution_id': self.contribution.id
                }
            )

            data = {
                'name': name,
                'description': 'Test image description',
                'file': get_image(file_name=file_path)
            }

            request = self.factory.post(url, data)
            request.user = self.admin
            view = MediaAbstractAPIView()
            view.request = request

            response = self.render(
                view.create_and_respond(request, self.contribution)
            )

            response_json = json.loads(response.content)
            self.assertEqual(
                response_json.get('name'),
                data.get('name')
            )
            self.assertEqual(
                response_json.get('description'),
                data.get('description')
            )
            self.assertEqual(
                response_json.get('creator').get('display_name'),
                request.user.display_name
            )
            self.assertEqual(
                response_json.get('file_type'),
                'ImageFile'
            )
            self.assertIsNotNone(response_json.get('url'))
            self.assertIn(expected_output_file, response_json.get('url'))
Example #15
0
    def test_create_image_and_respond(self):
        url = reverse(
            'api:project_media',
            kwargs={
                'project_id': self.project.id,
                'contribution_id': self.contribution.id
            }
        )

        data = {
            'name': 'A test image',
            'description': 'Test image description',
            'file': get_image()
        }

        request = self.factory.post(url, data)
        request.user = self.admin
        view = MediaFileListAbstractAPIView()
        view.request = request

        response = self.render(
            view.create_and_respond(self.admin, self.contribution)
        )

        response_json = json.loads(response.content)
        self.assertEqual(
            response_json.get('name'),
            data.get('name')
        )
        self.assertEqual(
            response_json.get('description'),
            data.get('description')
        )
        self.assertEqual(
            response_json.get('creator').get('display_name'),
            request.user.display_name
        )
        self.assertEqual(
            response_json.get('file_type'),
            'ImageFile'
        )
        self.assertIsNotNone(response_json.get('url'))
Example #16
0
    def test_create_image_and_respond_without_name(self):
        url = reverse(
            'api:project_media',
            kwargs={
                'project_id': self.project.id,
                'contribution_id': self.contribution.id
            }
        )

        data = {
            'description': 'Test image description',
            'file': get_image()
        }

        request = self.factory.post(url, data)
        request.user = self.admin
        view = MediaFileListAbstractAPIView()
        view.request = request

        view.create_and_respond(self.admin, self.contribution)