|
16 | 16 | from spdx.model.document import Document, CreationInfo
|
17 | 17 | from spdx.validation.document_validator import validate_full_spdx_document
|
18 | 18 | from spdx.validation.validation_message import ValidationMessage, ValidationContext, SpdxElementType
|
19 |
| -from tests.spdx.fixtures import document_fixture, creation_info_fixture |
| 19 | +from tests.spdx.fixtures import document_fixture, creation_info_fixture, file_fixture, package_fixture, snippet_fixture |
20 | 20 |
|
21 | 21 |
|
22 | 22 | def test_valid_document():
|
@@ -56,3 +56,18 @@ def test_spdx_version_handling(creation_info: CreationInfo, version_input: str,
|
56 | 56 | assert validation_messages == expected
|
57 | 57 |
|
58 | 58 | # TODO: https://github.com/spdx/tools-python/issues/375
|
| 59 | + |
| 60 | + |
| 61 | +def test_duplicated_spdx_ids(): |
| 62 | + document = document_fixture( |
| 63 | + files=[file_fixture(spdx_id="SPDXRef-File"), file_fixture(spdx_id="SPDXRef-2"), file_fixture(spdx_id="SPDXRef-3")], |
| 64 | + packages=[package_fixture(spdx_id="SPDXRef-2"), package_fixture(spdx_id="SPDXRef-DOCUMENT")], |
| 65 | + snippets=[snippet_fixture(spdx_id="SPDXRef-2"), snippet_fixture(spdx_id="SPDXRef-3")]) |
| 66 | + |
| 67 | + context = ValidationContext(spdx_id=document.creation_info.spdx_id, element_type=SpdxElementType.DOCUMENT) |
| 68 | + |
| 69 | + validation_messages: List[ValidationMessage] = validate_full_spdx_document(document) |
| 70 | + |
| 71 | + assert validation_messages == [ValidationMessage( |
| 72 | + "every spdx_id must be unique within the document, but found the following duplicates: ['SPDXRef-2', 'SPDXRef-3', 'SPDXRef-DOCUMENT']", |
| 73 | + context)] |
0 commit comments