def test_offering_update_not_found(self): data = { 'name': 'test_offering', 'version': '1.0', 'description': 'test offering' } # Mock get offerings method offering_entry = views.OfferingEntry(permitted_methods=('GET', 'PUT', 'DELETE')) views.update_offering = MagicMock(name='update_offering') request = self.factory.put( '/api/offering/offerings/test_user/test_offering/1.0', json.dumps(data), content_type='application/json', HTTP_ACCEPT='application/json') request.user = self.user response = offering_entry.update(request, 'test_user', 'test_offering', '1.0') # Check correct call self.assertFalse(views.update_offering.called) self.assertEqual(response.status_code, 404) self.assertEqual(response.get('Content-type'), 'application/json; charset=utf-8') body_response = json.loads(response.content) self.assertEqual(type(body_response), dict) self.assertEqual(body_response['message'], 'Offering not found') self.assertEqual(body_response['result'], 'error')
def test_get_offering_not_found(self): # Mock get offerings method offering_entry = views.OfferingEntry(permitted_methods=('GET', 'PUT', 'DELETE')) views.get_offering_info = MagicMock(name='get_offering_info') request = self.factory.get( '/api/offering/offerings/test_user/test_offering/1.0', HTTP_ACCEPT='application/json') request.user = self.user response = offering_entry.read(request, 'test_user', 'test_offering', '1.0') # Check correct call self.assertFalse(views.get_offering_info.called) self.assertEqual(response.status_code, 404) self.assertEqual(response.get('Content-type'), 'application/json; charset=utf-8') body_response = json.loads(response.content) self.assertEqual(type(body_response), dict) self.assertEqual(body_response['message'], 'Offering not found') self.assertEqual(body_response['result'], 'error')
def test_offering_update_not_provider(self): data = { 'name': 'test_offering', 'version': '1.0', 'description': 'test offering' } # Mock get offerings method offering_entry = views.OfferingEntry(permitted_methods=('GET', 'PUT', 'DELETE')) views.update_offering = MagicMock(name='update_offering') request = self.factory.put( '/api/offering/offerings/test_user/test_offering/1.0', json.dumps(data), content_type='application/json', HTTP_ACCEPT='application/json') request.user = self.user org = Organization.objects.get(name='test_user') # Call the view Offering.objects.create(name='test_offering', owner_organization=org, owner_admin_user=self.user, version='1.0', state='published', description_url='', resources=[], comments=[], tags=[], image_url='', related_images=[], offering_description={}, notification_url='', creation_date='2013-06-03 10:00:00') # Mock offering functions to obtain that the user is not owner views.Offering.is_owner = MagicMock(name='is_owner') views.Offering.is_owner.return_value = False org.managers = [] org.save() response = offering_entry.update(request, 'test_user', 'test_offering', '1.0') # Check correct call self.assertFalse(views.update_offering.called) self.assertEqual(response.status_code, 403) self.assertEqual(response.get('Content-type'), 'application/json; charset=utf-8') body_response = json.loads(response.content) self.assertEqual(type(body_response), dict) self.assertEqual(body_response['message'], 'You are not allowed to edit the current offering') self.assertEqual(body_response['result'], 'error')
def test_offering_update_exception(self): data = { 'name': 'test_offering', 'version': '1.0', 'description': 'test offering' } # Mock get offerings method offering_entry = views.OfferingEntry(permitted_methods=('GET', 'PUT', 'DELETE')) views.update_offering = MagicMock(name='update_offering') views.update_offering.side_effect = Exception('Update error') request = self.factory.put( '/api/offering/offerings/test_user/test_offering/1.0', json.dumps(data), content_type='application/json', HTTP_ACCEPT='application/json') request.user = self.user org = Organization.objects.get(name='test_user') # Call the view offering = Offering.objects.create(name='test_offering', owner_organization=org, owner_admin_user=self.user, version='1.0', state='published', description_url='', resources=[], comments=[], tags=[], image_url='', related_images=[], offering_description={}, notification_url='', creation_date='2013-06-03 10:00:00') response = offering_entry.update(request, 'test_user', 'test_offering', '1.0') # Check correct call views.update_offering.assert_called_once_with(self.user, offering, data) self.assertEqual(response.status_code, 400) self.assertEqual(response.get('Content-type'), 'application/json; charset=utf-8') body_response = json.loads(response.content) self.assertEqual(type(body_response), dict) self.assertEqual(body_response['message'], 'Update error') self.assertEqual(body_response['result'], 'error')
def test_get_offering(self): return_value = { 'name': 'test_offering', 'owner_organization': 'test_user', 'owner_admin_user_id': 'test_user', 'version': '1.0', 'state': 'published', 'description_url': 'http://repository.com/collection/usdl', 'rating': 0, 'comments': [], 'tags': [], 'image_url': 'media/image.png', 'related_images': [], 'creation_date': '2013-05-01 10:00:00', 'publication_date': '2013-06-03 10:00:00', 'resources': [] } # Mock get offerings method offering_entry = views.OfferingEntry(permitted_methods=('GET', 'PUT', 'DELETE')) views.get_offering_info = MagicMock(name='get_offering_info') views.get_offering_info.return_value = return_value request = self.factory.get( '/api/offering/offerings/test_user/test_offering/1.0') request.user = self.user # Call the view offering = Offering.objects.create( name='test_offering', owner_organization=Organization.objects.get(name='test_user'), owner_admin_user=self.user, version='1.0', state='published', description_url='', resources=[], comments=[], tags=[], image_url='', related_images=[], offering_description={}, notification_url='', creation_date='2013-06-03 10:00:00') response = offering_entry.read(request, 'test_user', 'test_offering', '1.0') # Check correct call views.get_offering_info.assert_called_once_with(offering, self.user) self.assertEqual(response.status_code, 200) self.assertEqual(response.get('Content-type'), 'application/json; charset=UTF-8') body_response = json.loads(response.content) self.assertEqual(type(body_response), dict) self.assertEqual(body_response['name'], 'test_offering') self.assertEqual(body_response['owner_organization'], 'test_user') self.assertEqual(body_response['owner_admin_user_id'], 'test_user')
name='change_current_organization'), url(r'^api/administration/organizations/(?P<org>[\w -]+)/?$', org_views.OrganizationEntry(permitted_methods=('PUT', 'GET'))), url( r'^api/administration/organizations/(?P<org>[\w -]+)/users/?$', org_views.OrganizationUserCollection(permitted_methods=('GET', 'POST'))), url(r'^api/offering/offerings/?$', offering_views.OfferingCollection(permitted_methods=('GET', 'POST'))), url(r'^api/offering/offerings/latest/?$', offering_views.NewestCollection(permitted_methods=('GET', ))), url(r'^api/offering/offerings/toprated/?$', offering_views.TopRatedCollection(permitted_methods=('GET', ))), url( r'^api/offering/offerings/(?P<organization>[\w -]+)/(?P<name>[\w -]+)/(?P<version>[\d.]+)/?$', offering_views.OfferingEntry(permitted_methods=('GET', 'PUT', 'DELETE'))), url( r'^api/offering/offerings/(?P<organization>[\w -]+)/(?P<name>[\w -]+)/(?P<version>[\d.]+)/publish/?$', offering_views.PublishEntry(permitted_methods=('POST', ))), url( r'^api/offering/offerings/(?P<organization>[\w -]+)/(?P<name>[\w -]+)/(?P<version>[\d.]+)/bind/?$', offering_views.BindEntry(permitted_methods=('POST', ))), url( r'^api/offering/offerings/(?P<organization>[\w -]+)/(?P<name>[\w -]+)/(?P<version>[\d.]+)/review/?$', offering_views.ReviewCollection(permitted_methods=('POST', 'GET'))), url( r'^api/offering/offerings/(?P<organization>[\w -]+)/(?P<name>[\w -]+)/(?P<version>[\d.]+)/review/(?P<review>\w+)/?$', offering_views.ReviewEntry(permitted_methods=('PUT', 'DELETE'))), url( r'^api/offering/offerings/(?P<organization>[\w -]+)/(?P<name>[\w -]+)/(?P<version>[\d.]+)/review/(?P<review>\w+)/reply/?$', offering_views.ResponseEntry(permitted_methods=('PUT', 'DELETE'))),