github.com/noqcks/syft@v0.0.0-20230920222752-a9e2c4e288e5/syft/pkg/cataloger/python/package_test.go (about)

     1  package python
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  
     8  	"github.com/anchore/syft/syft/pkg"
     9  )
    10  
    11  func Test_packageURL(t *testing.T) {
    12  	tests := []struct {
    13  		testName string
    14  		name     string
    15  		version  string
    16  		metadata *pkg.PythonPackageMetadata
    17  		want     string
    18  	}{
    19  		{
    20  			testName: "without metadata",
    21  			name:     "name",
    22  			version:  "v0.1.0",
    23  			want:     "pkg:pypi/name@v0.1.0",
    24  		},
    25  		{
    26  			testName: "with vcs info",
    27  			name:     "name",
    28  			version:  "v0.1.0",
    29  			metadata: &pkg.PythonPackageMetadata{
    30  				Name:    "bogus",  // note: ignored
    31  				Version: "v0.2.0", // note: ignored
    32  				DirectURLOrigin: &pkg.PythonDirectURLOriginInfo{
    33  					VCS:      "git",
    34  					URL:      "https://github.com/test/test.git",
    35  					CommitID: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    36  				},
    37  			},
    38  			want: "pkg:pypi/name@v0.1.0?vcs_url=git+https://github.com/test/test.git%40aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    39  		},
    40  	}
    41  	for _, tt := range tests {
    42  		t.Run(tt.testName, func(t *testing.T) {
    43  			assert.Equal(t, tt.want, packageURL(tt.name, tt.version, tt.metadata))
    44  		})
    45  	}
    46  }