示例#1
0
    def test_create_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)
示例#2
0
    def test_create_audio_and_convert(self):
        url = reverse(
            'api:project_media',
            kwargs={
                'project_id': self.project.id,
                'contribution_id': self.contribution.id
            }
        )

        audio_file = File(open(
            normpath(join(
                dirname(abspath(__file__)),
                'files/audio_2.3gp'
            )),
            'rb'
        ))

        data = {
            'name': 'A test sound',
            'description': 'Test sound description',
            'file': audio_file
        }

        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'),
            'AudioFile'
        )
        self.assertIn('audio_2.mp3', response_json.get('url'))
示例#3
0
    def test_create_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)
示例#4
0
    def test_get_list_and_respond(self):
        ImageFileFactory.create_batch(5, **{'contribution': self.contribution})

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

        request = self.factory.get(url)
        view = MediaFileListAbstractAPIView()
        view.request = request

        response = self.render(
            view.get_list_and_respond(self.admin, self.contribution))
        self.assertEqual(len(json.loads(response.content)), 5)
示例#5
0
    def test_get_list_and_respond(self):
        ImageFileFactory.create_batch(5, **{'contribution': self.contribution})

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

        request = self.factory.get(url)
        view = MediaFileListAbstractAPIView()
        view.request = request

        response = self.render(
            view.get_list_and_respond(self.admin, self.contribution)
        )
        self.assertEqual(len(json.loads(response.content)), 5)
示例#6
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'))
示例#7
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)