forked from evergreen-ci/evergreen
/
integration_test_setup.go
47 lines (37 loc) · 994 Bytes
/
integration_test_setup.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package testutil
import (
"fmt"
"io/ioutil"
"path/filepath"
"github.com/evergreen-ci/evergreen"
"github.com/evergreen-ci/evergreen/model"
"gopkg.in/yaml.v2"
)
// Creates a project ref local config that can be used for testing, with the string identifier given
// and the local config from a path
func CreateTestLocalConfig(testSettings *evergreen.Settings, projectName, projectPath string) error {
if projectPath == "" {
config, err := evergreen.FindConfig(testSettings.ConfigDir)
if err != nil {
return err
}
projectPath = filepath.Join(config, "project", fmt.Sprintf("%v.yml", projectName))
}
projectRef, err := model.FindOneProjectRef(projectName)
if err != nil {
return err
}
if projectRef == nil {
projectRef = &model.ProjectRef{}
}
data, err := ioutil.ReadFile(projectPath)
if err != nil {
return err
}
err = yaml.Unmarshal(data, projectRef)
if err != nil {
return err
}
projectRef.LocalConfig = string(data)
return projectRef.Upsert()
}