File: test_copyright.py

package info (click to toggle)
debsbom 0.6.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,248 kB
  • sloc: python: 5,965; makefile: 31
file content (48 lines) | stat: -rw-r--r-- 1,527 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
# Copyright (C) 2025 Siemens
#
# SPDX-License-Identifier: MIT

from debsbom.apt.copyright import Copyright, UnknownLicenseError
from pathlib import Path
import pytest


def test_copyright():
    cr = Copyright(Path("tests/data/copyright"))

    licenses = list(map(lambda lic: lic.synopsis, cr.licenses()))
    assert len(licenses) == 4
    assert "GPL-2+" in licenses
    assert "GPL-2" in licenses
    assert "BSD-3-clause" in licenses
    assert "Expat" in licenses

    spdx_licenses = list(map(lambda lic: str(lic), cr.spdx_license_expressions()))
    assert len(spdx_licenses) == 4
    assert "GPL-2.0-or-later" in spdx_licenses
    assert "GPL-2.0-only" in spdx_licenses
    assert "BSD-3-Clause" in spdx_licenses
    assert "MIT" in spdx_licenses


def test_non_spdx_copyright():
    cr = Copyright(Path("tests/data/non-spdx-copyright"))

    licenses = list(map(lambda lic: lic.synopsis, cr.licenses()))
    # we have some non-SPDX licenses, make sure they are in there
    assert "OPL-1+" in licenses
    assert "Vim-Regexp" in licenses
    assert "Compaq" in licenses
    assert "XPM" in licenses
    assert "EDL-1" in licenses

    with pytest.raises(UnknownLicenseError):
        list(cr.spdx_license_expressions())


def test_spdx_lic_expressions():
    cr = Copyright(Path("tests/data/lic-expr-copyright"))

    spdx_licenses = set(map(lambda lic: str(lic), cr.spdx_license_expressions()))
    assert "BSD-3-Clause OR GPL-2.0-or-later" in spdx_licenses
    assert "BSD-3-Clause OR GPL-2.0-only" in spdx_licenses