def deleted_resource(resource_client): request = input_model = model = resource_client.generate_create_example() try: _status, response, _error = resource_client.call_and_assert( Action.CREATE, OperationStatus.SUCCESS, request ) model = response["resourceModel"] test_input_equals_output(resource_client, input_model, model) _status, response, _error = resource_client.call_and_assert( Action.DELETE, OperationStatus.SUCCESS, model ) assert ( "resourceModel" not in response ), "The deletion handler's response object MUST NOT contain a model" yield model, request finally: status, response = resource_client.call(Action.DELETE, model) # a failed status is allowed if the error code is NotFound if status == OperationStatus.FAILED: error_code = resource_client.assert_failed(status, response) assert ( error_code == HandlerErrorCode.NotFound ), "A delete hander MUST return FAILED with a NotFound error code\ if the resource did not exist prior to the delete request" else: resource_client.assert_success(status, response)
def updated_resource(resource_client): create_request = input_model = model = resource_client.generate_create_example( ) try: _status, response, _error = resource_client.call_and_assert( Action.CREATE, OperationStatus.SUCCESS, create_request) created_model = model = response["resourceModel"] test_input_equals_output(resource_client, input_model, created_model) update_request = resource_client.generate_update_example(created_model) updated_input_model = prune_properties_from_model( update_request.copy(), resource_client.read_only_paths) _status, response, _error = resource_client.call_and_assert( Action.UPDATE, OperationStatus.SUCCESS, update_request, created_model) updated_model = response["resourceModel"] test_input_equals_output(resource_client, updated_input_model, updated_model) # flake8: noqa: B950 # pylint: disable=C0301 yield create_request, created_model, update_request, updated_model, updated_input_model finally: resource_client.call_and_assert(Action.DELETE, OperationStatus.SUCCESS, model)
def contract_create_delete(resource_client): requested_model = ( delete_model ) = input_model = resource_client.generate_create_example() try: response = test_create_success(resource_client, requested_model) # check response here delete_model = response["resourceModel"] test_input_equals_output(resource_client, input_model, delete_model) finally: test_delete_success(resource_client, delete_model)
def created_resource(resource_client): request = input_model = model = resource_client.generate_create_example() try: _status, response, _error = resource_client.call_and_assert( Action.CREATE, OperationStatus.SUCCESS, request) model = response["resourceModel"] test_input_equals_output(resource_client, input_model, model) yield model, request finally: resource_client.call_and_assert(Action.DELETE, OperationStatus.SUCCESS, model)
def contract_update_read(updated_resource, resource_client): # should be able to use the created model # to read since physical resource id is immutable ( _create_request, _created_model, _update_request, updated_model, updated_input_model, ) = updated_resource assert resource_client.is_primary_identifier_equal( resource_client.primary_identifier_paths, _created_model, updated_model), "The primaryIdentifier returned must match\ the primaryIdentifier passed into the request" read_response = test_read_success(resource_client, updated_model) test_input_equals_output(resource_client, updated_input_model, read_response["resourceModel"])
def deleted_resource(resource_client): request = input_model = model = resource_client.generate_create_example() try: _status, response, _error = resource_client.call_and_assert( Action.CREATE, OperationStatus.SUCCESS, request ) model = response["resourceModel"] test_input_equals_output(resource_client, input_model, model) _status, response, _error = resource_client.call_and_assert( Action.DELETE, OperationStatus.SUCCESS, model ) assert "resourceModel" not in response yield model, request finally: status, response = resource_client.call(Action.DELETE, model) # a failed status is allowed if the error code is NotFound if status == OperationStatus.FAILED: error_code = resource_client.assert_failed(status, response) assert error_code == HandlerErrorCode.NotFound else: resource_client.assert_success(status, response)
def updated_resource(resource_client): create_request = input_model = model = resource_client.generate_create_example( ) try: _status, response, _error = resource_client.call_and_assert( Action.CREATE, OperationStatus.SUCCESS, create_request) created_model = model = response["resourceModel"] test_input_equals_output(resource_client, input_model, created_model) updated_input_model = update_request = resource_client.generate_update_example( created_model) _status, response, _error = resource_client.call_and_assert( Action.UPDATE, OperationStatus.SUCCESS, update_request, created_model) updated_model = response["resourceModel"] test_input_equals_output(resource_client, updated_input_model, updated_model) yield create_request, created_model, update_request, updated_model finally: resource_client.call_and_assert(Action.DELETE, OperationStatus.SUCCESS, model)
def contract_create_read(created_resource, resource_client): input_model, created_model, _request = created_resource read_response = test_read_success(resource_client, created_model) test_input_equals_output(resource_client, input_model, read_response["resourceModel"])