go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers/os/resources/python_test.go (about)

     1  // Copyright (c) Mondoo, Inc.
     2  // SPDX-License-Identifier: BUSL-1.1
     3  
     4  package resources_test
     5  
     6  import (
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/assert"
    10  	"github.com/stretchr/testify/require"
    11  	"go.mondoo.com/cnquery/providers-sdk/v1/testutils"
    12  )
    13  
    14  func TestResource_Python(t *testing.T) {
    15  	x := testutils.InitTester(testutils.RecordingMock("./python/testdata/linux.json"))
    16  
    17  	t.Run("parse all packages", func(t *testing.T) {
    18  		res := x.TestQuery(t, "python.packages")
    19  		assert.NotEmpty(t, res)
    20  		require.Empty(t, res[0].Result().Error)
    21  		values, ok := res[0].Data.Value.([]interface{})
    22  		require.True(t, ok, "type assertion failed")
    23  		assert.Equal(t, 136, len(values), "expected two parsed packages")
    24  	})
    25  
    26  	t.Run("parse child packages", func(t *testing.T) {
    27  		res := x.TestQuery(t, "python.toplevel")
    28  		assert.NotEmpty(t, res)
    29  		require.Empty(t, res[0].Result().Error)
    30  		values, ok := res[0].Data.Value.([]interface{})
    31  		require.True(t, ok, "type assertion failed")
    32  		assert.Equal(t, 3, len(values), "expected a single child/leaf package")
    33  	})
    34  }
    35  
    36  func TestResource_PythonPackage(t *testing.T) {
    37  	x := testutils.InitTester(testutils.RecordingMock("./python/testdata/python-package.json"))
    38  
    39  	t.Run("parse single package", func(t *testing.T) {
    40  		res := x.TestQuery(t, "python.package(\"/usr/lib/python3/dist-packages/python_ftp_server-1.3.17.dist-info/METADATA\").name")
    41  		assert.NotEmpty(t, res)
    42  		require.Empty(t, res[0].Result().Error)
    43  		assert.Equal(t, "python-ftp-server", res[0].Data.Value, "expected name of parsed package")
    44  	})
    45  }