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)
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)
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))
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)
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)
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 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)
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)
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))
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, )
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)
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)
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)
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)