Source code for scim2_tester.checkers.resource_post

from typing import Any

from scim2_models import Resource

from ..utils import CheckContext
from ..utils import CheckResult
from ..utils import Status
from ..utils import check_result
from ..utils import checker


[docs] @checker("crud:create") def object_creation( context: CheckContext, model: type[Resource[Any]] ) -> list[CheckResult]: """Validate SCIM resource creation via POST requests. Tests that resources can be successfully created using POST method on the appropriate resource endpoint, with automatic cleanup after validation. Creates a test object with all required fields populated with valid data. **Status:** - :attr:`~scim2_tester.Status.SUCCESS`: Resource created successfully with valid response - :attr:`~scim2_tester.Status.ERROR`: Creation failed due to client/server error .. pull-quote:: :rfc:`RFC 7644 Section 3.3 - Creating Resources <7644#section-3.3>` "To create new resources, clients send HTTP POST requests to the resource endpoint, such as ``/Users`` or ``/Groups``." "If the resource is successfully created, the server SHALL return a ``201`` 'Created' response code with the newly created resource." """ created_obj = context.resource_manager.create_and_register(model) return [ check_result( context, status=Status.SUCCESS, reason=f"Successfully created {model.__name__} object with id {created_obj.id}", data=created_obj, ) ]