Skip to content

Commit 35ed3d8

Browse files
[issue-397] replace valid_defaults.py usages with fixtures.py
Signed-off-by: Armin Tänzer <armin.taenzer@tngtech.com>
1 parent f4c48f7 commit 35ed3d8

15 files changed

+87
-236
lines changed

tests/jsonschema/test_document_converter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ def test_json_property_names(converter: DocumentConverter, document_property: Do
7171

7272
def test_successful_conversion(converter: DocumentConverter):
7373
creation_info = creation_info_fixture(spdx_version="spdxVersion", spdx_id="spdxId", name="name",
74-
namespace="namespace", document_comment="comment", data_license="dataLicense",
74+
document_namespace="namespace", document_comment="comment", data_license="dataLicense",
7575
external_document_refs=[external_document_ref_fixture()])
7676
document = Document(creation_info, annotations=[
7777
Annotation("annotationId", AnnotationType.REVIEW, Actor(ActorType.PERSON, "reviewerName"),

tests/valid_defaults.py

Lines changed: 0 additions & 116 deletions
This file was deleted.

tests/validation/test_actor_validator.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,21 +13,21 @@
1313

1414
import pytest
1515

16-
from src.model.actor import ActorType, Actor
16+
from src.model.actor import ActorType
1717
from src.validation.actor_validator import validate_actor
1818
from src.validation.validation_message import ValidationMessage, ValidationContext, SpdxElementType
19-
from tests.valid_defaults import get_actor
19+
from tests.fixtures import actor_fixture
2020

2121

2222
def test_valid_actor_person():
23-
actor = Actor(ActorType.PERSON, "person name", "mail@mail.com")
23+
actor = actor_fixture()
2424
validation_messages: List[ValidationMessage] = validate_actor(actor, "SPDXRef-DOCUMENT")
2525

2626
assert validation_messages == []
2727

2828

2929
@pytest.mark.parametrize("actor, expected_message",
30-
[(get_actor(actor_type=ActorType.TOOL, mail="mail@mail.com"),
30+
[(actor_fixture(actor_type=ActorType.TOOL, email="mail@mail.com"),
3131
"email must be None if actor_type is TOOL, but is: mail@mail.com"),
3232
])
3333
def test_invalid_actor(actor, expected_message):

tests/validation/test_annotation_validator.py

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,19 @@
99
# See the License for the specific language governing permissions and
1010
# limitations under the License.
1111

12-
from datetime import datetime
1312
from typing import List
1413

1514
import pytest
1615

17-
from src.model.annotation import Annotation, AnnotationType
16+
from src.model.annotation import Annotation
1817
from src.model.document import Document
1918
from src.validation.annotation_validator import validate_annotation
2019
from src.validation.validation_message import ValidationMessage, ValidationContext, SpdxElementType
21-
from tests.valid_defaults import get_actor, get_annotation, get_document, get_file
20+
from tests.fixtures import document_fixture, annotation_fixture, file_fixture
2221

2322

2423
def test_valid_annotation():
25-
document: Document = get_document(files=[get_file(spdx_id="SPDXRef-File")])
26-
27-
annotation = Annotation("SPDXRef-File", AnnotationType.OTHER, get_actor(), datetime(2022, 1, 1), "comment")
28-
validation_messages: List[ValidationMessage] = validate_annotation(annotation, document)
24+
validation_messages: List[ValidationMessage] = validate_annotation(annotation_fixture(), document_fixture())
2925

3026
assert validation_messages == []
3127

@@ -35,8 +31,8 @@ def test_valid_annotation():
3531
"did not find the referenced spdx_id SPDXRef-File in the SPDX document")
3632
])
3733
def test_invalid_annotation(annotation_id, file_id, expected_message):
38-
annotation: Annotation = get_annotation(spdx_id=annotation_id)
39-
document: Document = get_document(files=[get_file(spdx_id=file_id)])
34+
annotation: Annotation = annotation_fixture(spdx_id=annotation_id)
35+
document: Document = document_fixture(files=[file_fixture(spdx_id=file_id)])
4036
validation_messages: List[ValidationMessage] = validate_annotation(annotation, document)
4137

4238
expected = ValidationMessage(expected_message,

tests/validation/test_checksum_validator.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,12 @@
1616
from src.model.checksum import Checksum, ChecksumAlgorithm
1717
from src.validation.checksum_validator import validate_checksum
1818
from src.validation.validation_message import ValidationMessage, ValidationContext, SpdxElementType
19+
from tests.fixtures import checksum_fixture
1920

2021

2122
@pytest.mark.parametrize("checksum",
22-
[Checksum(ChecksumAlgorithm.SHA1, "71c4025dd9897b364f3ebbb42c484ff43d00791c"),
23+
[checksum_fixture(),
24+
Checksum(ChecksumAlgorithm.SHA1, "71c4025dd9897b364f3ebbb42c484ff43d00791c"),
2325
Checksum(ChecksumAlgorithm.SHA224,
2426
"9c9f4e27d957a123cc32d86afe33ae53b1184192cccb23b0f257f588"),
2527
Checksum(ChecksumAlgorithm.SHA256,

tests/validation/test_creation_info_validator.py

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,37 +9,31 @@
99
# See the License for the specific language governing permissions and
1010
# limitations under the License.
1111

12-
from datetime import datetime
1312
from typing import List
1413

1514
import pytest
1615

17-
from src.model.document import CreationInfo
18-
from src.model.version import Version
1916
from src.validation.creation_info_validator import validate_creation_info
2017
from src.validation.validation_message import ValidationMessage, ValidationContext, SpdxElementType
21-
from tests.valid_defaults import get_actor, get_external_document_ref, get_creation_info
18+
from tests.fixtures import creation_info_fixture
2219

2320

2421
def test_valid_creation_info():
25-
creation_info = CreationInfo("SPDX-2.3", "SPDXRef-DOCUMENT", "document name", "https://some.uri",
26-
[get_actor(), get_actor()], datetime(2022, 1, 1), "creator_comment",
27-
"CC0-1.0", [get_external_document_ref(), get_external_document_ref()], Version(6, 3),
28-
"doc_comment")
22+
creation_info = creation_info_fixture()
2923
validation_messages: List[ValidationMessage] = validate_creation_info(creation_info)
3024

3125
assert validation_messages == []
3226

3327

3428
@pytest.mark.parametrize \
3529
("creation_info_input, spdx_id, expected_message",
36-
[(get_creation_info(spdx_version="version-2.3"), "SPDXRef-DOCUMENT",
30+
[(creation_info_fixture(spdx_version="version-2.3"), "SPDXRef-DOCUMENT",
3731
'spdx_version must be of the form "SPDX-[major].[minor]" but is: version-2.3'),
38-
(get_creation_info(spdx_id="SPDXRef-doc"), "SPDXRef-doc",
32+
(creation_info_fixture(spdx_id="SPDXRef-doc"), "SPDXRef-doc",
3933
'spdx_id must be "SPDXRef-DOCUMENT", but is: SPDXRef-doc'),
40-
(get_creation_info(data_license="MIT"), "SPDXRef-DOCUMENT",
34+
(creation_info_fixture(data_license="MIT"), "SPDXRef-DOCUMENT",
4135
'data_license must be "CC0-1.0", but is: MIT'),
42-
(get_creation_info(document_namespace="some_namespace"), "SPDXRef-DOCUMENT",
36+
(creation_info_fixture(document_namespace="some_namespace"), "SPDXRef-DOCUMENT",
4337
"document_namespace must be a valid URI specified in RFC-3986, but is: some_namespace"),
4438
])
4539
def test_invalid_creation_info(creation_info_input, expected_message, spdx_id):

tests/validation/test_document_validator.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,13 @@
1111

1212
from typing import List
1313

14-
from src.model.document import Document
1514
from src.validation.document_validator import validate_full_spdx_document
1615
from src.validation.validation_message import ValidationMessage
17-
from tests.valid_defaults import get_creation_info, get_package, get_file, get_snippet, get_annotation, \
18-
get_relationship, get_extracted_licensing_info
16+
from tests.fixtures import document_fixture
1917

2018

2119
def test_valid_document():
22-
document = Document(get_creation_info(), [get_package(), get_package()], [get_file(), get_file()],
23-
[get_snippet(), get_snippet()], [get_annotation(), get_annotation()],
24-
[get_relationship(), get_relationship()],
25-
[get_extracted_licensing_info(), get_extracted_licensing_info()])
20+
document = document_fixture()
2621
validation_messages: List[ValidationMessage] = validate_full_spdx_document(document, "2.3")
2722

2823
assert validation_messages == []

tests/validation/test_external_document_ref_validator.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,13 @@
1111

1212
from typing import List
1313

14-
from src.model.external_document_ref import ExternalDocumentRef
1514
from src.validation.external_document_ref_validator import validate_external_document_ref
1615
from src.validation.validation_message import ValidationMessage
17-
from tests.valid_defaults import get_checksum
16+
from tests.fixtures import external_document_ref_fixture
1817

1918

2019
def test_valid_external_document_ref():
21-
22-
external_document_ref = ExternalDocumentRef("DocumentRef-id", "http://some.uri", get_checksum())
20+
external_document_ref = external_document_ref_fixture()
2321
validation_messages: List[ValidationMessage] = validate_external_document_ref(external_document_ref, "parent_id")
2422

2523
assert validation_messages == []

tests/validation/test_external_package_ref_validator.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,26 +13,24 @@
1313

1414
import pytest
1515

16-
from src.model.package import ExternalPackageRef, ExternalPackageRefCategory
1716
from src.validation.external_package_ref_validator import validate_external_package_ref
1817
from src.validation.validation_message import ValidationMessage, ValidationContext, SpdxElementType
19-
from tests.valid_defaults import get_external_package_ref
18+
from tests.fixtures import external_package_ref_fixture
2019

2120

2221
def test_valid_external_package_ref():
23-
24-
external_package_ref = ExternalPackageRef(ExternalPackageRefCategory.OTHER, "swh",
25-
"swh:1:cnt:94a9ed024d3859793618152ea559a168bbcbb5e2", "comment")
22+
external_package_ref = external_package_ref_fixture()
2623
validation_messages: List[ValidationMessage] = validate_external_package_ref(external_package_ref, "parent_id")
2724

2825
assert validation_messages == []
2926

3027

3128
@pytest.mark.parametrize("external_package_ref, expected_message",
32-
[(get_external_package_ref(),
29+
[(external_package_ref_fixture(),
3330
"TBD"),
3431
])
35-
@pytest.mark.skip("add tests once external package ref validation is implemented: https://github.com/spdx/tools-python/issues/373")
32+
@pytest.mark.skip(
33+
"add tests once external package ref validation is implemented: https://github.com/spdx/tools-python/issues/373")
3634
def test_invalid_external_package_ref(external_package_ref, expected_message):
3735
parent_id = "SPDXRef-Package"
3836
validation_messages: List[ValidationMessage] = validate_external_package_ref(external_package_ref, parent_id)

tests/validation/test_extracted_licensing_info_validator.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,25 +13,23 @@
1313

1414
import pytest
1515

16-
from src.model.extracted_licensing_info import ExtractedLicensingInfo
1716
from src.validation.extracted_licensing_info_validator import validate_extracted_licensing_info
1817
from src.validation.validation_message import ValidationMessage, ValidationContext, SpdxElementType
19-
from tests.valid_defaults import get_extracted_licensing_info
18+
from tests.fixtures import extracted_licensing_info_fixture
2019

2120

2221
def test_valid_extracted_licensing_info():
23-
extracted_licensing_info = ExtractedLicensingInfo("LicenseRef-1", "extracted text", "license name",
24-
["http://some.url"], "comment")
22+
extracted_licensing_info = extracted_licensing_info_fixture()
2523
validation_messages: List[ValidationMessage] = validate_extracted_licensing_info(extracted_licensing_info)
2624

2725
assert validation_messages == []
2826

2927

3028
# TODO: tests for licenses not on the SPDX License list (i.e. they must provide id, name and cross-references)
3129
@pytest.mark.parametrize("extracted_licensing_info, expected_message",
32-
[(get_extracted_licensing_info(extracted_text=None),
30+
[(extracted_licensing_info_fixture(extracted_text=None),
3331
'extracted_text must be provided if there is a license_id assigned'),
34-
(get_extracted_licensing_info(cross_references=["invalid_url"]),
32+
(extracted_licensing_info_fixture(cross_references=["invalid_url"]),
3533
'cross_reference must be a valid URL, but is: invalid_url')
3634
])
3735
def test_invalid_extracted_licensing_info(extracted_licensing_info, expected_message):

0 commit comments

Comments
 (0)