diff --git a/internal/manager/config/config_test.go b/internal/manager/config/config_test.go new file mode 100644 index 00000000..9e38d320 --- /dev/null +++ b/internal/manager/config/config_test.go @@ -0,0 +1,20 @@ +package config + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestVariablesWithBackslashes(t *testing.T) { + c, err := loadConf("test_files/config_with_backslashes.yaml") + require.NoError(t, err) + + vars := c.VariablesLookup[VariableAudienceUsers] + expectSingle := `C:\Downloads\blender-1.0\blender.exe` + expectDouble := `C:\\Downloads\\blender-1.0\\blender.exe` + assert.Equal(t, expectSingle, vars["single-backslash"]["blender"]) + assert.Equal(t, expectDouble, vars["double-backslash"]["blender"]) + assert.Equal(t, expectSingle, vars["quoted-double-backslash"]["blender"]) +} diff --git a/internal/manager/config/test_files/config_with_backslashes.yaml b/internal/manager/config/test_files/config_with_backslashes.yaml new file mode 100644 index 00000000..a702e96d --- /dev/null +++ b/internal/manager/config/test_files/config_with_backslashes.yaml @@ -0,0 +1,24 @@ +# File for use in unit tests +# +# This file has variable definitions with various ways to include backslashes in +# values. + +_meta: + version: 3 +manager_name: Backslash Tester +database: flamenco-manager-backslash-tester.sqlite +listen: :8123 +autodiscoverable: false +local_manager_storage_path: ./flamenco-manager-storage +shared_storage_path: ./tmp/flamenco-shared-storage +shaman: + enabled: false +variables: + blender: + values: + - platform: single-backslash + value: C:\Downloads\blender-1.0\blender.exe + - platform: double-backslash + value: C:\\Downloads\\blender-1.0\\blender.exe + - platform: quoted-double-backslash + value: "C:\\Downloads\\blender-1.0\\blender.exe"