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()
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'))
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()
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'))
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'
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()
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')
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)
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')
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()
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()
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'))
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'))
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)