github.com/nextlinux/gosbom@v0.81.1-0.20230627115839-1ff50c281391/gosbom/pkg/cataloger/python/package_test.go (about)

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