def test_get_by_version_id_global_template_as_anonymous_raises_access_control_error(
     self, ):
     mock_request = create_mock_request(user=self.anonymous_user)
     with self.assertRaises(AccessControlError):
         template_vm_api.get_by_version_id(str(
             self.fixture.global_template.id),
                                           request=mock_request)
 def test_get_active_version_manager_by_user_id_as_superuser_returns_user_templates(
     self, ):
     mock_request = create_mock_request(user=self.superuser1)
     list_tvm = template_vm_api.get_active_version_manager_by_user_id(
         request=mock_request)
     for tvm in list_tvm:
         self.assertEqual(tvm.user, str(self.superuser1.id))
 def test_get_by_version_id_other_users_template_as_staff_raises_access_control_error(
     self, ):
     mock_request = create_mock_request(user=self.staff_user1)
     with self.assertRaises(AccessControlError):
         template_vm_api.get_by_version_id(str(
             self.fixture.user2_template.id),
                                           request=mock_request)
 def test_get_active_global_version_manager_as_superuser_returns_global_tvm(
         self):
     mock_request = create_mock_request(user=self.superuser1)
     list_tvm = template_vm_api.get_active_global_version_manager(
         request=mock_request)
     for tvm in list_tvm:
         self.assertEqual(tvm.user, None)
Exemple #5
0
    def test_update_registry_info_raises_exception_if_bad_sets(
            self, mock_get, mock_registry, mock_sets, mock_identify):
        """

        Args:
            mock_get:
            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_oai_registry = _create_mock_oai_registry()
        mock_get.return_value = mock_oai_registry
        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.update_registry_info(mock_oai_registry,
                                                  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_get_all_by_templates_return_object(self,
                                                mock_get_all_by_templates,
                                                mock_get_all_by_version_ids):
        # Arrange
        mock_user = create_mock_user("1", is_superuser=True)
        mock_request = create_mock_request(user=mock_user)
        template_id = ObjectId()
        mock_oai_provider_set1 = _create_mock_oai_provider_set()
        mock_oai_provider_set2 = _create_mock_oai_provider_set()

        mock_get_all_by_version_ids.return_value = [
            mock_oai_provider_set1.templates_manager,
            mock_oai_provider_set2.templates_manager,
        ]
        mock_get_all_by_templates.return_value = [
            mock_oai_provider_set1,
            mock_oai_provider_set2,
        ]

        # Act
        result = provider_set_api.get_all_by_template_ids([template_id],
                                                          mock_request)

        # Assert
        self.assertTrue(
            all(isinstance(item, OaiProviderSet) for item in result))
 def test_edit_title_global_template_as_user_raises_access_control_error(
         self):
     mock_request = create_mock_request(user=self.user1)
     with self.assertRaises(AccessControlError):
         template_vm_api.edit_title(self.fixture.global_tvm,
                                    "new_name",
                                    request=mock_request)
Exemple #8
0
 def test_template_upsert_no_content_raises_error(self, mock_save):
     mock_user = create_mock_user("1", is_superuser=True)
     mock_request = create_mock_request(mock_user)
     template = _create_template(filename="name.xsd")
     mock_save.return_value = None
     with self.assertRaises(Exception):
         template_api.upsert(template, request=mock_request)
 def test_get_all_as_superuser_returns_all_templates(self):
     mock_request = create_mock_request(user=self.superuser)
     templates = template_api.get_all(request=mock_request)
     self.assertEquals(templates.count(), 3)
     self.assertTrue(self.fixture.user1_template in list(templates))
     self.assertTrue(self.fixture.user2_template in list(templates))
     self.assertTrue(self.fixture.global_template in list(templates))
 def test_set_display_name_user_template_as_anonymous_raises_access_control_error(
     self, ):
     mock_request = create_mock_request(user=self.anonymous_user)
     with self.assertRaises(AccessControlError):
         template_api.set_display_name(self.fixture.user1_template,
                                       "new_name",
                                       request=mock_request)
 def test_get_all_accessible_by_hash_as_staff_returns_global_template(self):
     mock_request = create_mock_request(user=self.staff_user1)
     templates = template_api.get_all_accessible_by_hash(
         self.fixture.global_template.hash, request=mock_request)
     self.assertTrue(self.fixture.user1_template not in list(templates))
     self.assertTrue(self.fixture.user2_template not in list(templates))
     self.assertTrue(self.fixture.global_template in list(templates))
Exemple #12
0
    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 test_type_upsert_invalid_core_type_raises_core_error(self, mock_save):
     mock_user = create_mock_user("1", is_superuser=True)
     mock_request = create_mock_request(user=mock_user)
     type_object = _create_type(content="<schema></schema>")
     mock_save.return_value = None
     with self.assertRaises(exceptions.CoreError):
         type_api.upsert(type_object, request=mock_request)
Exemple #14
0
    def test_add_registry_by_url_raises_exception_if_bad_identify(
            self, mock_registry, mock):
        """

        Args:
            mock_registry:
            mock:

        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.return_value = (
            OaiPmhMessage.get_message_labelled(self.error_message %
                                               "identify"),
            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 % "identify")
        self.assertEqual(ex.exception.status_code,
                         status.HTTP_500_INTERNAL_SERVER_ERROR)
 def test_set_display_name_other_users_template_as_staff_raises_access_control_error(
     self, ):
     mock_request = create_mock_request(user=self.staff_user1)
     with self.assertRaises(AccessControlError):
         template_api.set_display_name(self.fixture.user2_template,
                                       "new_name",
                                       request=mock_request)
Exemple #16
0
    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,
            )
Exemple #17
0
    def test_upsert_creates_if_does_not_exist(self, mock_get):
        """Test upsert create
        Args:
            mock_get:

        Returns:

        """
        # Arrange
        mock_user = create_mock_user("1", is_superuser=True)
        mock_request = create_mock_request(user=mock_user)
        text = "<test>Hello</test>"
        mock_get.return_value.status_code = status.HTTP_200_OK
        mock_get.return_value.text = text
        oai_harvester_metadata_format = OaiPmhMock.mock_oai_first_metadata_format(
        )
        self.fixture.insert_registry(insert_related_collections=False)

        # Act
        oai_registry_api._upsert_metadata_format_for_registry(
            oai_harvester_metadata_format,
            self.fixture.registry,
            request=mock_request)

        # Assert
        metadata_format_in_database = (
            oai_harvester_metadata_format_api.
            get_by_metadata_prefix_and_registry_id(
                oai_harvester_metadata_format.metadata_prefix,
                self.fixture.registry.id))

        self.assertEquals(oai_harvester_metadata_format,
                          metadata_format_in_database)
Exemple #18
0
    def test_upsert_updates_if_does_exist(self, mock_get):
        """Test upsert update
        Args:
            mock_get:

        Returns:

        """
        self.fixture.insert_registry()

        # Arrange
        mock_user = create_mock_user("1", is_superuser=True)
        mock_request = create_mock_request(user=mock_user)
        text = "<test>Hello</test>"
        mock_get.return_value.status_code = status.HTTP_200_OK
        mock_get.return_value.text = text
        metadata_format = self.fixture.oai_metadata_formats[0]
        schema = "http://www.dummy-url.us"
        metadata_format.schema = schema

        # Act
        oai_registry_api._upsert_metadata_format_for_registry(
            metadata_format, self.fixture.registry, request=mock_request)

        # Assert
        metadata_format_in_database = (oai_harvester_metadata_format_api.
                                       get_by_metadata_prefix_and_registry_id(
                                           metadata_format.metadata_prefix,
                                           self.fixture.registry.id))
        self.assertEquals(metadata_format_in_database.schema, schema)
Exemple #19
0
    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_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
        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,
            request=mock_request,
        )

        # Assert
        _assert_metadata_format(self, list_metadata_formats, result.id)
 def test_get_all_accessible_by_id_list_as_superuser_returns_accessible_templates(
     self, ):
     mock_request = create_mock_request(user=self.superuser1)
     templates = template_api.get_all_accessible_by_id_list(
         self.template_id_list, request=mock_request)
     self.assertTrue(self.fixture.user1_template in list(templates))
     self.assertTrue(self.fixture.user2_template in list(templates))
     self.assertTrue(self.fixture.global_template in list(templates))
 def test_get_all_accessible_by_hash_list_as_superuser_returns_other_user_template(
     self, ):
     mock_request = create_mock_request(user=self.superuser1)
     templates = template_api.get_all_accessible_by_hash_list(
         [self.fixture.user2_template.hash], request=mock_request)
     self.assertTrue(self.fixture.user1_template not in list(templates))
     self.assertTrue(self.fixture.user2_template in list(templates))
     self.assertTrue(self.fixture.global_template not in list(templates))
Exemple #22
0
 def test_data_upsert_raises_xml_error_if_failed_during_xml_validation(self):
     # Arrange
     data = _create_data(None, user_id="3", title="title", content="")
     mock_user = create_mock_user("3")
     mock_request = create_mock_request(user=mock_user)
     # Act # Assert
     with self.assertRaises(exceptions.XMLError):
         data_api.upsert(data, mock_request)
 def test_type_upsert_invalid_filename_raises_validation_error(
         self, mock_save):
     mock_user = create_mock_user("1", is_superuser=True)
     mock_request = create_mock_request(user=mock_user)
     type_object = _create_type(filename=1)
     mock_save.side_effect = django_exceptions.ValidationError("")
     with self.assertRaises(django_exceptions.ValidationError):
         type_api.upsert(type_object, request=mock_request)
    def test_type_upsert_valid_returns_type(self, mock_save):
        mock_user = create_mock_user("1", is_superuser=True)
        mock_request = create_mock_request(user=mock_user)
        type_object = _create_type()

        mock_save.return_value = type_object
        result = type_api.upsert(type_object, request=mock_request)
        self.assertIsInstance(result, Type)
 def test_insert_global_template_as_user_raises_access_control_error(self):
     mock_request = create_mock_request(user=self.user1)
     with self.assertRaises(AccessControlError):
         template_vm_api.insert(
             self.fixture.global_tvm,
             self.fixture.global_template,
             request=mock_request,
         )
Exemple #26
0
 def test_template_upsert_invalid_content_raises_xsd_error(self, mock_save):
     mock_user = create_mock_user("1", is_superuser=True)
     mock_request = create_mock_request(mock_user)
     template = _create_template(filename="name.xsd",
                                 content="<schema></schema>")
     mock_save.return_value = None
     with self.assertRaises(exceptions.XSDError):
         template_api.upsert(template, request=mock_request)
Exemple #27
0
 def test_data_check_xml_file_is_valid_raises_xml_error_if_failed_during_xml_validation(
     self,
 ):
     # Arrange
     user = create_mock_user("3")
     mock_request = create_mock_request(user=user)
     data = _create_data(None, user_id="3", title="title", content="")
     # Act # Assert
     with self.assertRaises(exceptions.XMLError):
         data_api.check_xml_file_is_valid(data, request=mock_request)
Exemple #28
0
 def test_template_get_all_by_hash_contains_only_template(
         self, mock_get_all_by_hash):
     mock_user = create_mock_user("1", is_superuser=True)
     mock_request = create_mock_request(user=mock_user)
     _generic_get_all_test(
         self,
         mock_get_all_by_hash,
         template_api.get_all_accessible_by_hash("fake_hash",
                                                 request=mock_request),
     )
 def test_get_any_template_as_superuser_returns_template(self):
     mock_request = create_mock_request(user=self.superuser1)
     template = template_api.get(self.fixture.user1_template.id,
                                 request=mock_request)
     self.assertEqual(template, self.fixture.user1_template)
     template = template_api.get(self.fixture.user2_template.id,
                                 request=mock_request)
     self.assertEqual(template, self.fixture.user2_template)
     template = template_api.get(self.fixture.global_template.id,
                                 request=mock_request)
     self.assertEqual(template, self.fixture.global_template)
Exemple #30
0
    def test_template_get_raises_exception_if_object_does_not_exist(
            self, mock_get_by_id):
        # Arrange
        mock_absent_id = ObjectId()
        mock_get_by_id.side_effect = mongoengine_errors.DoesNotExist
        mock_user = create_mock_user("3")
        mock_request = create_mock_request(user=mock_user)

        # Act + Assert
        with self.assertRaises(mongoengine_errors.DoesNotExist):
            template_api.get(mock_absent_id, request=mock_request)