Esempio n. 1
0
    def test_get_returns_http_403_if_user_is_not_superuser_or_have_no_access_to_the_data(
            self, data_get_by_id, user_get_by_id, read_access_mock):
        # Arrange
        data = self.fixture.data_collection[self.fixture.USER_1_WORKSPACE_1]
        user_request = create_mock_user("65467", is_staff=True)
        user_new_owner = create_mock_user("123")
        data_get_by_id.return_value = data
        user_get_by_id.return_value = user_new_owner
        read_access_mock.return_value = []

        # Act
        response = RequestMock.do_request_patch(
            data_rest_views.DataChangeOwner.as_view(),
            user_request,
            param={
                "pk": data.id,
                "user_id": self.fixture.workspace_1.id
            },
        )

        # Assert
        self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
    def test_is_staff_returns_http_200(
        self, instance_serializer_data, instance_get_all
    ):
        instance_get_all.return_value = {}
        instance_serializer_data.return_value = True

        response = RequestMock.do_request_get(
            instance_views.InstanceDetail.as_view(),
            create_mock_user("1", is_staff=True),
            param={"pk": self.fake_id},
        )

        self.assertEqual(response.status_code, status.HTTP_200_OK)
Esempio n. 3
0
    def test_select_all_metadata_formats(self):
        # Arrange
        user = create_mock_user("1", is_staff=True)

        # Act
        response = RequestMock.do_request_get(
            rest_oai_provider_metadata_format.MetadataFormatsList.as_view(),
            user,
            self.data,
        )

        # Assert
        self.assertEqual(response.status_code, status.HTTP_200_OK)
Esempio n. 4
0
    def test_get_other_user_blob_returns_http_200(self):
        # Arrange
        user = create_mock_user("2")

        # Act
        response = RequestMock.do_request_get(
            views.BlobDownload.as_view(),
            user,
            param={"pk": str(self.fixture.blob_1.id)},
        )

        # Assert
        self.assertEqual(response.status_code, status.HTTP_200_OK)
Esempio n. 5
0
    def test_add_data_source_adds_data_source_if_not_found(
            self, mock_get, mock_save):
        # create query
        query = _create_query()
        # Arrange
        mock_get.side_effect = exceptions.DoesNotExist("")
        mock_save.return_value = query
        mock_user = create_mock_user("1")

        origin_data_sources = len(query.data_sources)
        data_source = _create_data_source("Remote", "/remote/url")
        query_api.add_data_source(query, data_source, mock_user)
        self.assertTrue(len(query.data_sources) == origin_data_sources + 1)
Esempio n. 6
0
    def test_staff_returns_http_200(self, oai_provider_set_serializer_data,
                                    oai_provider_set_get_by_id):
        oai_provider_set_serializer_data.return_value = True
        oai_provider_set_get_by_id.return_value = {}
        mock_user = create_mock_user("1", is_staff=True)

        response = RequestMock.do_request_get(
            oai_provider_views.SetDetail.as_view(),
            mock_user,
            param={"set_id": self.fake_id},
        )

        self.assertEqual(response.status_code, status.HTTP_200_OK)
Esempio n. 7
0
    def test_get_returns_http_404_when_data_not_found(self, mock_get_by_id):
        # Arrange
        mock_user = create_mock_user('1')
        mock_get_by_id.side_effect = DoesNotExist("error")

        # Mock
        response = RequestMock.do_request_get(
            views.TemplateVersionManagerDetail.as_view(),
            mock_user,
            param={'pk': 'invalid'})

        # Assert
        self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
Esempio n. 8
0
 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_staff_returns_http_200(self, mock_data_get_by_id):
        mock_data = Data(template="template",
                         user_id="1",
                         dict_content=OrderedDict(),
                         title="title")
        mock_data_get_by_id.return_value = mock_data
        mock_user = create_mock_user("1", is_staff=True)

        response = RequestMock.do_request_get(get_result_from_data_id,
                                              mock_user,
                                              data={"id": 0})

        self.assertEqual(response.status_code, status.HTTP_200_OK)
Esempio n. 10
0
    def test_get_filtered_by_incorrect_workspace_returns_no_data(self):
        # Arrange
        user = create_mock_user("1")

        # Act
        response = RequestMock.do_request_get(
            data_rest_views.DataList.as_view(),
            user,
            data={"workspace": "5da8ac0622301d1240f2551b"},
        )

        # Assert
        self.assertEqual(len(response.data), 0)
Esempio n. 11
0
    def test_get_all_by_correct_workspace_returns_data(self):
        # Arrange
        user = create_mock_user("1", is_superuser=True)

        # Act
        response = RequestMock.do_request_get(
            data_rest_views.DataListByWorkspace.as_view(),
            user,
            param={"workspace_id": self.fixture.workspace_1.id},
        )

        # Assert
        self.assertEqual(len(response.data), 2)
Esempio n. 12
0
    def test_get_filtered_by_correct_workspace_returns_data(self):
        # Arrange
        user = create_mock_user("1")

        # Act
        response = RequestMock.do_request_get(
            data_rest_views.DataList.as_view(),
            user,
            data={"workspace": self.fixture.workspace_1.id},
        )

        # Assert
        self.assertEqual(len(response.data), 2)
Esempio n. 13
0
    def test_patch_wrong_id_returns_http_404(self):
        # Arrange
        user = create_mock_user("1")

        # Act
        response = RequestMock.do_request_patch(
            data_rest_views.DataDetail.as_view(),
            user,
            param={"pk": "507f1f77bcf86cd799439011"},
        )

        # Assert
        self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
Esempio n. 14
0
    def test_get_filtered_by_incorrect_template_returns_no_data(self):
        # Arrange
        user = create_mock_user("1")

        # Act
        response = RequestMock.do_request_get(
            data_rest_views.DataList.as_view(),
            user,
            data={"template": "507f1f77bcf86cd799439011"},
        )

        # Assert
        self.assertEqual(len(response.data), 0)
Esempio n. 15
0
    def test_get_raise_500_sever_error_when_general_error_occured(self):
        # Arrange
        user = create_mock_user('0')
        self.param = {'pk': '0'}

        # Act
        response = RequestMock.do_request_get(
            exporter_views.ExporterDetail.as_view(), user, self.data,
            self.param)

        # Assert
        self.assertEqual(response.status_code,
                         status.HTTP_500_INTERNAL_SERVER_ERROR)
    def test_get_raise_500_sever_error_when_general_error_occurred(self):
        # Arrange
        user = create_mock_user("0")
        self.param = {"pk": "0"}

        # Act
        response = RequestMock.do_request_get(
            saved_query_views.SavedQueryDetail.as_view(), user, self.data,
            self.param)

        # Assert
        self.assertEqual(response.status_code,
                         status.HTTP_500_INTERNAL_SERVER_ERROR)
Esempio n. 17
0
 def test_data_check_xml_file_is_valid_raises_xml_error_if_failed_during_validation(
     self,
 ):
     # Arrange
     user = create_mock_user("3")
     mock_request = create_mock_request(user=user)
     template = _get_template()
     data = _create_data(
         template, user_id="3", title="title", content="<new_tag></new_tag>"
     )
     # Act # Assert
     with self.assertRaises(exceptions.XMLError):
         data_api.check_xml_file_is_valid(data, request=mock_request)
Esempio n. 18
0
    def test_get_returns_http_200(self):
        # Arrange
        user = create_mock_user("1")

        # Act
        response = RequestMock.do_request_get(
            template_rest_views.TemplateDownload.as_view(),
            user,
            param={"pk": self.fixture.user1_template.id},
        )

        # Assert
        self.assertEqual(response.status_code, status.HTTP_200_OK)
Esempio n. 19
0
    def test_staff_returns_http_204(self, oai_provider_set_delete,
                                    oai_provider_set_get_by_id):
        oai_provider_set_get_by_id.return_value = _create_mock_provider()
        oai_provider_set_delete.return_value = {}
        mock_user = create_mock_user("1", is_staff=True)

        response = RequestMock.do_request_delete(
            oai_provider_views.SetDetail.as_view(),
            mock_user,
            param={"set_id": self.fake_id},
        )

        self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT)
Esempio n. 20
0
    def test_get_wrong_id_returns_http_404(self):
        # Arrange
        user = create_mock_user("1")

        # Act
        response = RequestMock.do_request_get(
            template_rest_views.TemplateDownload.as_view(),
            user,
            param={"pk": "507f1f77bcf86cd799439011"},
        )

        # Assert
        self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
    def test_staff_returns_http_200(self, mock_oai_record_api_get_by_id,
                                    mock_serializer_data):
        # Arrange
        user = create_mock_user("1", is_staff=True)
        mock_oai_record_api_get_by_id.return_value = Mock(spec=OaiRecord)
        mock_serializer_data.return_value = Mock(spec=ResultSerializer)

        # Act
        response = RequestMock.do_request_get(
            result_views.get_result_from_data_id, user=user, data=self.data)

        # Assert
        self.assertEqual(response.status_code, status.HTTP_200_OK)
Esempio n. 22
0
    def test_get_no_buckets_types_returns_all_types_if_no_buckets(
            self, mock_get_all_buckets, mock_get_global_version_managers):
        # Arrange
        mock_user = create_mock_user("1", is_superuser=True)
        mock_request = create_mock_request(user=mock_user)
        mock_type1 = _create_mock_type_version_manager()
        mock_type2 = _create_mock_type_version_manager()
        mock_get_global_version_managers.return_value = [
            mock_type1, mock_type2
        ]
        mock_get_all_buckets.return_value = []

        self.assertTrue(len(get_no_buckets_types(request=mock_request)) == 2)
Esempio n. 23
0
    def test_get_filtered_by_correct_name_returns_http_200(self):
        # Arrange
        user = create_mock_user("1", is_superuser=True)

        # Act
        response = RequestMock.do_request_get(
            views.BlobList.as_view(),
            user,
            data={"filename": self.fixture.blob_1.filename},
        )

        # Assert
        self.assertEqual(response.status_code, status.HTTP_200_OK)
Esempio n. 24
0
    def test_get_returns_data(self, mock_xml_content):
        # Arrange
        user = create_mock_user('1')
        mock_xml_content.return_value = "content"

        # Act
        response = RequestMock.do_request_get(
            data_rest_views.DataDetail.as_view(),
            user,
            param={'pk': self.fixture.data_1.id})

        # Assert
        self.assertEqual(response.data['title'], self.fixture.data_1.title)
Esempio n. 25
0
    def test_add_data_source_does_not_add_data_source_if_found(
            self, mock_get, mock_save):
        # create query
        query = _create_query()
        # Arrange
        mock_get.return_value = query.data_sources[0]
        mock_save.return_value = query
        mock_user = create_mock_user("1")

        origin_data_sources = len(query.data_sources)
        data_source = _create_data_source("Remote", "/remote/url")
        query_api.add_data_source(query, data_source, mock_user)
        self.assertTrue(len(query.data_sources) == origin_data_sources)
Esempio n. 26
0
    def test_get_data_containing_ascii_returns_data(self, mock_xml_content):
        # Arrange
        user = create_mock_user('1')
        mock_xml_content.return_value = "\xc3te\xc3"

        # Act
        response = RequestMock.do_request_get(
            data_rest_views.DataDetail.as_view(),
            user,
            param={'pk': self.fixture.data_1.id})

        # Assert
        self.assertEqual(response.status_code, status.HTTP_200_OK)
Esempio n. 27
0
    def test_select_metadata_format_returns(self):
        # Arrange
        user = create_mock_user("1", is_staff=True)

        # Act
        response = RequestMock.do_request_get(
            rest_oai_provider_metadata_format.MetadataFormatDetail.as_view(),
            user=user,
            param=self.param,
        )

        # Assert
        self.assertEqual(response.status_code, status.HTTP_200_OK)
Esempio n. 28
0
    def test_patch_wrong_template_returns_http_400(self):
        # Arrange
        user = create_mock_user('1')

        # Act
        response = RequestMock.do_request_patch(
            data_rest_views.DataDetail.as_view(),
            user,
            data={'template': '507f1f77bcf86cd799439011'},
            param={'pk': self.fixture.data_1.id})

        # Assert
        self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
Esempio n. 29
0
    def test_get_filtered_by_incorrect_is_disabled_returns_no_tvm(self):
        # Arrange
        user = create_mock_user("1")

        # Act
        response = RequestMock.do_request_get(
            views.GlobalTypeVersionManagerList.as_view(),
            user,
            data={"is_disabled": not self.fixture.type_vm_1.is_disabled},
        )

        # Assert
        self.assertEqual(len(response.data), 0)
Esempio n. 30
0
    def test_authenticated_returns_http_200(self, mock_execute_query):
        # Arrange
        user = create_mock_user("1")
        data = self.one_record_data
        mock_execute_query.return_value = Response(status=status.HTTP_200_OK)

        # Act
        response = RequestMock.do_request_post(
            query_views.ExecuteQueryView.as_view(), user=user, data=data
        )

        # Assert
        self.assertEqual(response.status_code, status.HTTP_200_OK)