//go:build unix package python import ( "context" "testing" "github.com/stretchr/testify/assert" ) func TestDetectsViaPathLookup(t *testing.T) { ctx := context.Background() py, err := DetectExecutable(ctx) assert.NoError(t, err) assert.NotEmpty(t, py) } func TestDetectsViaListing(t *testing.T) { t.Setenv("PATH", "testdata/other-binaries-filtered") ctx := context.Background() py, err := DetectExecutable(ctx) assert.NoError(t, err) assert.Equal(t, "testdata/other-binaries-filtered/python3.10", py) } func TestDetectFailsNoInterpreters(t *testing.T) { t.Setenv("PATH", "testdata") ctx := context.Background() _, err := DetectExecutable(ctx) assert.Equal(t, ErrNoPythonInterpreters, err) } func TestDetectFailsNoMinimalVersion(t *testing.T) { t.Setenv("PATH", "testdata/no-python3") ctx := context.Background() _, err := DetectExecutable(ctx) assert.EqualError(t, err, "cannot find Python greater or equal to v3.8.0") }