|
14 | 14 | from debian import deb822 |
15 | 15 |
|
16 | 16 | from debsbom.apt.cache import ExtendedStates, Repository |
17 | | -from debsbom.dpkg.package import ChecksumAlgo |
| 17 | +from debsbom.dpkg.package import ChecksumAlgo, VcsInfo, VcsType |
| 18 | +from debsbom.generate.spdx import format_vcs |
18 | 19 | from debsbom.util.compression import Compression |
19 | 20 | from debsbom.generate import Debsbom, SBOMType |
20 | 21 | from debsbom.sbom import BOM_Standard |
@@ -346,3 +347,47 @@ def test_illformed_sources(): |
346 | 347 | # parse incomplete packages. Must not raise |
347 | 348 | assert len(list(Repository._make_srcpkgs([deb822.Packages()]))) == 0 |
348 | 349 | assert len(list(Repository._make_binpkgs([deb822.Packages()]))) == 0 |
| 350 | + |
| 351 | + |
| 352 | +@pytest.mark.parametrize( |
| 353 | + "input, expected", |
| 354 | + [ |
| 355 | + ( |
| 356 | + VcsInfo( |
| 357 | + VcsType.Git, |
| 358 | + "https://salsa.debian.org/rust-team/debcargo-conf.git [src/rav1e]", |
| 359 | + ), |
| 360 | + "git+https://salsa.debian.org/rust-team/debcargo-conf.git#src/rav1e", |
| 361 | + ), |
| 362 | + ( |
| 363 | + VcsInfo( |
| 364 | + VcsType.Git, |
| 365 | + "https://salsa.debian.org/gnome-team/gnome-maps.git -b debian/bookworm", |
| 366 | + ), |
| 367 | + "git+https://salsa.debian.org/gnome-team/gnome-maps.git@debian/bookworm", |
| 368 | + ), |
| 369 | + ( |
| 370 | + VcsInfo( |
| 371 | + VcsType.Svn, |
| 372 | + "https://arthurdejong.org/svn/svn2cl/debian/svn2cl/trunk/", |
| 373 | + ), |
| 374 | + "svn+https://arthurdejong.org/svn/svn2cl/debian/svn2cl/trunk/", |
| 375 | + ), |
| 376 | + ( |
| 377 | + VcsInfo( |
| 378 | + VcsType.Git, |
| 379 | + "git+https://git.myproject.org/MyProject -b da39 [lib/variable.rb]", |
| 380 | + ), |
| 381 | + "git+https://git.myproject.org/MyProject@da39#lib/variable.rb", |
| 382 | + ), |
| 383 | + ( |
| 384 | + VcsInfo( |
| 385 | + VcsType.Git, |
| 386 | + "git+ssh://git.myproject.org/MyProject [lib/variable.rb] -b da39", |
| 387 | + ), |
| 388 | + "git+ssh://git.myproject.org/MyProject@da39#lib/variable.rb", |
| 389 | + ), |
| 390 | + ], |
| 391 | +) |
| 392 | +def test_format_vcs(input, expected): |
| 393 | + assert format_vcs(input) == expected |
0 commit comments