File: test_document.py

package info (click to toggle)
python-spdx-tools 0.8.3-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,084 kB
  • sloc: python: 18,675; xml: 12,553; sh: 46; makefile: 7
file content (88 lines) | stat: -rw-r--r-- 3,173 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
# SPDX-FileCopyrightText: 2023 spdx contributors
#
# SPDX-License-Identifier: Apache-2.0

from unittest import mock

import pytest

from spdx_tools.spdx.model import Document


@mock.patch("spdx_tools.spdx.model.ExtractedLicensingInfo", autospec=True)
@mock.patch("spdx_tools.spdx.model.Relationship", autospec=True)
@mock.patch("spdx_tools.spdx.model.Annotation", autospec=True)
@mock.patch("spdx_tools.spdx.model.Snippet", autospec=True)
@mock.patch("spdx_tools.spdx.model.File", autospec=True)
@mock.patch("spdx_tools.spdx.model.Package", autospec=True)
@mock.patch("spdx_tools.spdx.model.CreationInfo", autospec=True)
def test_correct_initialization(creation_info, package, file, snippet, annotation, relationship, extracted_lic):
    document = Document(
        creation_info,
        [package, package],
        [file, file],
        [snippet, snippet],
        [annotation, annotation],
        [relationship, relationship],
        [extracted_lic, extracted_lic],
    )
    assert document.creation_info == creation_info
    assert document.packages == [package, package]
    assert document.files == [file, file]
    assert document.snippets == [snippet, snippet]
    assert document.annotations == [annotation, annotation]
    assert document.relationships == [relationship, relationship]
    assert document.extracted_licensing_info == [extracted_lic, extracted_lic]


@mock.patch("spdx_tools.spdx.model.CreationInfo", autospec=True)
def test_correct_initialization_with_default_values(creation_info):
    document = Document(creation_info)
    assert document.creation_info == creation_info
    assert document.packages == []
    assert document.files == []
    assert document.snippets == []
    assert document.annotations == []
    assert document.relationships == []
    assert document.extracted_licensing_info == []


def test_wrong_type_in_creation_info():
    with pytest.raises(TypeError):
        Document("string")


@mock.patch("spdx_tools.spdx.model.CreationInfo", autospec=True)
def test_wrong_type_in_packages(creation_info):
    with pytest.raises(TypeError):
        Document(creation_info, packages=["string"])


@mock.patch("spdx_tools.spdx.model.CreationInfo", autospec=True)
def test_wrong_type_in_files(creation_info):
    with pytest.raises(TypeError):
        Document(creation_info, files={})


@mock.patch("spdx_tools.spdx.model.CreationInfo", autospec=True)
def test_wrong_type_in_snippets(creation_info):
    with pytest.raises(TypeError):
        Document(creation_info, snippets=())


@mock.patch("spdx_tools.spdx.model.CreationInfo", autospec=True)
def test_wrong_type_in_annotations(creation_info):
    with pytest.raises(TypeError):
        Document(creation_info, annotations=["string"])


@mock.patch("spdx_tools.spdx.model.CreationInfo", autospec=True)
def test_wrong_type_in_relationships(creation_info):
    with pytest.raises(TypeError):
        Document(creation_info, relationships="string")


@mock.patch("spdx_tools.spdx.model.CreationInfo", autospec=True)
def test_wrong_type_in_extracted_licensing_info(creation_info):
    with pytest.raises(TypeError):
        Document(creation_info, extracted_licensing_info=42)