github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/pkg/platform/runtime/setup/implementations/camel/prepare_lin_win_test.go (about) 1 // +build !darwin 2 3 package camel_test 4 5 import ( 6 "fmt" 7 "os" 8 "path/filepath" 9 rt "runtime" 10 "strings" 11 12 "github.com/ActiveState/cli/internal/fileutils" 13 "github.com/ActiveState/cli/pkg/platform/runtime/setup/implementations/camel" 14 ) 15 16 func (suite *MetaDataTestSuite) TestMetaData_Prepare() { 17 template := `{ 18 "affected_env": "PYTHONPATH", 19 "binaries_in": [ 20 { 21 "path": "%s", 22 "relative": 0 23 } 24 ], 25 "relocation_dir": "/relocate" 26 }` 27 28 originalValue := os.Getenv("PYTHONIOENCODING") 29 os.Unsetenv("PYTHONIOENCODING") 30 defer func() { 31 os.Setenv("PYTHONIOENCODING", originalValue) 32 }() 33 34 tempDir := suite.dir 35 pythonBinaryFilename := "python3" 36 if rt.GOOS == "windows" { 37 pythonBinaryFilename = pythonBinaryFilename + ".exe" 38 tempDir = strings.ReplaceAll(tempDir, "\\", "\\\\") 39 } 40 err := fileutils.Touch(filepath.Join(suite.dir, pythonBinaryFilename)) 41 suite.Require().NoError(err) 42 43 contents := fmt.Sprintf(template, tempDir) 44 metaData, err := camel.ParseMetaData([]byte(contents)) 45 suite.Require().NoError(err) 46 47 err = metaData.Prepare(suite.dir) 48 suite.Require().NoError(err) 49 suite.Require().NotEmpty(metaData.Env["PYTHONIOENCODING"]) 50 }