def test_add_registry_by_url_raises_exception_if_bad_sets_data( self, mock_registry, mock_identify, mock_set, mock_transform): """ Args: mock_registry: mock_identify: mock_set: mock_transform: Returns: """ # Arrange mock_user = create_mock_user("1", is_superuser=True) mock_request = create_mock_request(user=mock_user) mock_registry.return_value = False mock_identify.return_value = OaiPmhMock.mock_oai_identify( ), status.HTTP_200_OK mock_set.return_value = [], status.HTTP_200_OK exception_message = "Bad sets" mock_transform.side_effect = Exception(exception_message) # Act + Assert with self.assertRaises( oai_pmh_exceptions.OAIAPILabelledException) as ex: oai_registry_api.add_registry_by_url(self.url, self.harvest_rate, self.harvest, request=mock_request) self.assertTrue(exception_message in ex.exception.message) self.assertEqual(ex.exception.status_code, status.HTTP_400_BAD_REQUEST)
def add_registry(request): """ Add a registry. Args: request: Returns: """ try: if request.method == 'POST': form = AddRegistryForm(request.POST) if form.is_valid(): url = form.cleaned_data.get('url') harvest_rate = form.cleaned_data.get('harvest_rate') harvest = form.cleaned_data.get('harvest') oai_registry_api.add_registry_by_url(url, harvest_rate, harvest) messages.add_message(request, messages.SUCCESS, 'Data provider added with success.') else: return HttpResponseBadRequest('Please enter a valid URL.') except Exception as e: return HttpResponseBadRequest(e.message, content_type='application/javascript') return HttpResponse(json.dumps({}), content_type='application/javascript')
def test_add_registry_by_url_raises_exception_if_bad_identify_data( self, mock_registry, mock_identify, mock_transform): """ Args: mock_registry: mock_identify: mock_transform: Returns: """ # Arrange mock_registry.return_value = False mock_identify.return_value = [], status.HTTP_200_OK exception_message = "Bad identify" mock_transform.side_effect = Exception(exception_message) # Act + Assert with self.assertRaises( oai_pmh_exceptions.OAIAPILabelledException) as ex: oai_registry_api.add_registry_by_url(self.url, self.harvest_rate, self.harvest) self.assertTrue(exception_message in ex.exception.message) self.assertEqual(ex.exception.status_code, status.HTTP_400_BAD_REQUEST)
def test_add_registry_by_url_raises_exception_if_bad_sets( self, mock_registry, mock_sets, mock_identify): """ Args: mock_registry: mock_sets: mock_identify: Returns: """ # Arrange mock_user = create_mock_user("1", is_superuser=True) mock_request = create_mock_request(user=mock_user) mock_identify.return_value = [], status.HTTP_200_OK mock_registry.return_value = False mock_sets.return_value = ( OaiPmhMessage.get_message_labelled(self.error_message % "sets"), status.HTTP_500_INTERNAL_SERVER_ERROR, ) # Act + Assert with self.assertRaises( oai_pmh_exceptions.OAIAPILabelledException) as ex: oai_registry_api.add_registry_by_url(self.url, self.harvest_rate, self.harvest, request=mock_request) self.assertEqual(ex.exception.message, self.error_message % "sets") self.assertEqual(ex.exception.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR)
def test_add_registry_by_url_raises_exception_if_bad_metadata_formats( self, mock_registry, mock_metadata_formats, mock_identify, mock_sets): """ Args: mock_registry: mock_metadata_formats: mock_identify: mock_sets: Returns: """ # Arrange mock_sets.return_value = [], status.HTTP_200_OK mock_identify.return_value = [], status.HTTP_200_OK mock_registry.return_value = False mock_metadata_formats.return_value = OaiPmhMessage.get_message_labelled(self.error_message % "metadataFormats"),\ status.HTTP_500_INTERNAL_SERVER_ERROR # Act + Assert with self.assertRaises( oai_pmh_exceptions.OAIAPILabelledException) as ex: oai_registry_api.add_registry_by_url(self.url, self.harvest_rate, self.harvest) self.assertEqual(ex.exception.message, self.error_message % "metadataFormats") self.assertEqual(ex.exception.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR)
def test_add_registry_raises_exception_if_url_already_exists(self): """ Test add registry with existing URL """ # Act + Assert with self.assertRaises(oai_pmh_exceptions.OAIAPINotUniqueError): oai_registry_api.add_registry_by_url(self.fixture.url, self.fixture.harvest_rate, self.fixture.harvest)
def test_add_registry_not_available(self, mock_identify): """Test add registry not available Args: mock_identify: Returns: """ # Arrange mock_user = create_mock_user("1", is_superuser=True) mock_request = create_mock_request(user=mock_user) mock_identify.return_value = ( { "message": "An error occurred when attempting to identify " "resource: " "404 Client Error: NOT FOUND" }, status.HTTP_500_INTERNAL_SERVER_ERROR, ) # Act + Assert with self.assertRaises(oai_pmh_exceptions.OAIAPILabelledException): oai_registry_api.add_registry_by_url( self.fixture.url, self.fixture.harvest_rate, self.fixture.harvest, request=mock_request, )
def add_registry(request): """Add a registry. Args: request: Returns: """ try: if request.method == "POST": form = AddRegistryForm(request.POST) if form.is_valid(): url = form.cleaned_data.get("url") harvest_rate = form.cleaned_data.get("harvest_rate") harvest = form.cleaned_data.get("harvest") oai_registry_api.add_registry_by_url(url, harvest_rate, harvest, request=request) messages.add_message(request, messages.SUCCESS, "Data provider added with success.") else: return HttpResponseBadRequest("Please enter a valid URL.") except Exception as e: return HttpResponseBadRequest(escape(str(e)), content_type="application/javascript") return HttpResponse(json.dumps({}), content_type="application/javascript")
def test_add_registry_raises_exception_if_url_already_exists(self): """Test add registry with existing URL""" # Arrange mock_user = create_mock_user("1", is_superuser=True) mock_request = create_mock_request(user=mock_user) # Act + Assert with self.assertRaises(oai_pmh_exceptions.OAIAPINotUniqueError): oai_registry_api.add_registry_by_url( self.fixture.url, self.fixture.harvest_rate, self.fixture.harvest, request=mock_request, )
def test_add_registry(self, mock_identify, mock_metadata_formats, mock_sets, mock_get): """ Test add registry Args: mock_identify: mock_metadata_formats: mock_sets: mock_get: Returns: """ # Arrange mock_identify.return_value = OaiPmhMock.mock_oai_identify( ), status.HTTP_200_OK mock_metadata_formats.return_value = OaiPmhMock.mock_oai_metadata_format(), \ status.HTTP_200_OK mock_sets.return_value = OaiPmhMock.mock_oai_set(), status.HTTP_200_OK text = '<test>Hello</test>' mock_get.return_value.status_code = status.HTTP_200_OK mock_get.return_value.text = text # Act result = oai_registry_api.add_registry_by_url( self.fixture.url, self.fixture.harvest_rate, self.fixture.harvest) # Assert self.assertIsInstance(result, OaiRegistry)
def test_add_registry_metadata_format(self, mock_identify, mock_metadata_formats, mock_sets, mock_get): """ Test add registry metadata formats Args: mock_identify: mock_metadata_formats: mock_sets: mock_get: Returns: """ # Arrange mock_identify.return_value = OaiPmhMock.mock_oai_identify( ), status.HTTP_200_OK list_metadata_formats = OaiPmhMock.mock_oai_metadata_format() mock_metadata_formats.return_value = list_metadata_formats, status.HTTP_200_OK mock_sets.return_value = [], status.HTTP_200_OK text = '<test>Hello</test>' mock_get.return_value.status_code = status.HTTP_200_OK mock_get.return_value.text = text # Act result = oai_registry_api.add_registry_by_url( self.fixture.url, self.fixture.harvest_rate, self.fixture.harvest) # Assert _assert_metadata_format(self, list_metadata_formats, result.id)
def test_add_registry_sets(self, mock_identify, mock_metadata_formats, mock_sets, mock_get): """Test add registry sets Args: mock_identify: mock_metadata_formats: mock_sets: mock_get: Returns: """ # Arrange mock_user = create_mock_user("1", is_superuser=True) mock_request = create_mock_request(user=mock_user) mock_identify.return_value = OaiPmhMock.mock_oai_identify( ), status.HTTP_200_OK mock_metadata_formats.return_value = [], status.HTTP_200_OK list_sets = OaiPmhMock.mock_oai_set() mock_sets.return_value = list_sets, status.HTTP_200_OK text = "<test>Hello</test>" mock_get.return_value.status_code = status.HTTP_200_OK mock_get.return_value.text = text # Act result = oai_registry_api.add_registry_by_url( self.fixture.url, self.fixture.harvest_rate, self.fixture.harvest, request=mock_request, ) # Assert _assert_set(self, list_sets, result.id)
def test_add_registry_not_available(self, mock_identify): """ Test add registry not available Args: mock_identify: Returns: """ # Arrange mock_identify.return_value = {'message': 'An error occurred when attempting to identify ' 'resource: ' '404 Client Error: NOT FOUND'}, \ status.HTTP_500_INTERNAL_SERVER_ERROR # Act + Assert with self.assertRaises(oai_pmh_exceptions.OAIAPILabelledException): oai_registry_api.add_registry_by_url(self.fixture.url, self.fixture.harvest_rate, self.fixture.harvest)
def create(self, validated_data): return oai_registry_api.add_registry_by_url(**validated_data)
def create(self, validated_data): return oai_registry_api.add_registry_by_url( **validated_data, request=self.context["request"] )