mirror of
https://github.com/anchore/syft.git
synced 2025-11-20 09:53:16 +01:00
* chore: bump packageurl-go with new parsing rules * test: update expectedPURL in unit tests to match new % encoding --------- Signed-off-by: Christopher Phillips <32073428+spiffcs@users.noreply.github.com>
65 lines
1.4 KiB
Go
65 lines
1.4 KiB
Go
package python
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/anchore/syft/syft/pkg"
|
|
)
|
|
|
|
func Test_packageURL(t *testing.T) {
|
|
tests := []struct {
|
|
testName string
|
|
name string
|
|
version string
|
|
metadata *pkg.PythonPackage
|
|
want string
|
|
}{
|
|
{
|
|
testName: "without metadata",
|
|
name: "name",
|
|
version: "v0.1.0",
|
|
want: "pkg:pypi/name@v0.1.0",
|
|
},
|
|
{
|
|
testName: "with vcs info",
|
|
name: "name",
|
|
version: "v0.1.0",
|
|
metadata: &pkg.PythonPackage{
|
|
Name: "bogus", // note: ignored
|
|
Version: "v0.2.0", // note: ignored
|
|
DirectURLOrigin: &pkg.PythonDirectURLOriginInfo{
|
|
VCS: "git",
|
|
URL: "https://github.com/test/test.git",
|
|
CommitID: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
},
|
|
},
|
|
want: "pkg:pypi/name@v0.1.0?vcs_url=git%2Bhttps%3A%2F%2Fgithub.com%2Ftest%2Ftest.git%40aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.testName, func(t *testing.T) {
|
|
assert.Equal(t, tt.want, packageURL(tt.name, tt.version, tt.metadata))
|
|
})
|
|
}
|
|
}
|
|
|
|
func Test_normalization(t *testing.T) {
|
|
normalForm := "friendly-bard"
|
|
tests := []string{
|
|
normalForm,
|
|
"Friendly-Bard",
|
|
"FRIENDLY-BARD",
|
|
"friendly.bard",
|
|
"friendly_bard",
|
|
"friendly--bard",
|
|
"FrIeNdLy-._.-bArD",
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt, func(t *testing.T) {
|
|
assert.Equal(t, normalForm, normalize(tt))
|
|
})
|
|
}
|
|
}
|