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 }