spdx_tools.spdx.validation.creation_info_validator

 1# SPDX-FileCopyrightText: 2022 spdx contributors
 2#
 3# SPDX-License-Identifier: Apache-2.0
 4
 5from beartype.typing import List
 6
 7from spdx_tools.spdx.constants import DOCUMENT_SPDX_ID
 8from spdx_tools.spdx.model import CreationInfo
 9from spdx_tools.spdx.validation.actor_validator import validate_actors
10from spdx_tools.spdx.validation.external_document_ref_validator import validate_external_document_refs
11from spdx_tools.spdx.validation.uri_validators import validate_uri
12from spdx_tools.spdx.validation.validation_message import SpdxElementType, ValidationContext, ValidationMessage
13
14
15def validate_creation_info(creation_info: CreationInfo, spdx_version: str) -> List[ValidationMessage]:
16    validation_messages: List[ValidationMessage] = []
17
18    context = ValidationContext(spdx_id=creation_info.spdx_id, element_type=SpdxElementType.DOCUMENT)
19
20    if creation_info.spdx_id != DOCUMENT_SPDX_ID:
21        validation_messages.append(
22            ValidationMessage(f"spdx_id must be {DOCUMENT_SPDX_ID}, but is: {creation_info.spdx_id}", context)
23        )
24
25    if creation_info.data_license != "CC0-1.0":
26        validation_messages.append(
27            ValidationMessage(f'data_license must be "CC0-1.0", but is: {creation_info.data_license}', context)
28        )
29
30    for message in validate_uri(creation_info.document_namespace):
31        validation_messages.append(ValidationMessage("document_namespace " + message, context))
32
33    validation_messages.extend(validate_actors(creation_info.creators, creation_info.spdx_id))
34    validation_messages.extend(
35        validate_external_document_refs(creation_info.external_document_refs, creation_info.spdx_id, spdx_version)
36    )
37
38    return validation_messages
def validate_creation_info( creation_info: spdx_tools.spdx.model.document.CreationInfo, spdx_version: str) -> list[spdx_tools.spdx.validation.validation_message.ValidationMessage]:
16def validate_creation_info(creation_info: CreationInfo, spdx_version: str) -> List[ValidationMessage]:
17    validation_messages: List[ValidationMessage] = []
18
19    context = ValidationContext(spdx_id=creation_info.spdx_id, element_type=SpdxElementType.DOCUMENT)
20
21    if creation_info.spdx_id != DOCUMENT_SPDX_ID:
22        validation_messages.append(
23            ValidationMessage(f"spdx_id must be {DOCUMENT_SPDX_ID}, but is: {creation_info.spdx_id}", context)
24        )
25
26    if creation_info.data_license != "CC0-1.0":
27        validation_messages.append(
28            ValidationMessage(f'data_license must be "CC0-1.0", but is: {creation_info.data_license}', context)
29        )
30
31    for message in validate_uri(creation_info.document_namespace):
32        validation_messages.append(ValidationMessage("document_namespace " + message, context))
33
34    validation_messages.extend(validate_actors(creation_info.creators, creation_info.spdx_id))
35    validation_messages.extend(
36        validate_external_document_refs(creation_info.external_document_refs, creation_info.spdx_id, spdx_version)
37    )
38
39    return validation_messages