github.com/drud/ddev@v1.21.5-alpha1.0.20230226034409-94fcc4b94453/pkg/ddevapp/providerGit_test.go (about) 1 package ddevapp_test 2 3 import ( 4 "github.com/drud/ddev/pkg/nodeps" 5 "github.com/mitchellh/go-homedir" 6 "github.com/stretchr/testify/require" 7 "os" 8 "path/filepath" 9 "strings" 10 "testing" 11 12 . "github.com/drud/ddev/pkg/ddevapp" 13 "github.com/drud/ddev/pkg/testcommon" 14 asrt "github.com/stretchr/testify/assert" 15 ) 16 17 // TestGitPull ensures we can pull backups from a git repository 18 func TestGitPull(t *testing.T) { 19 assert := asrt.New(t) 20 var err error 21 22 testDir, _ := os.Getwd() 23 24 siteDir := testcommon.CreateTmpDir(t.Name()) 25 26 err = os.Chdir(siteDir) 27 assert.NoError(err) 28 app, err := NewApp(siteDir, true) 29 assert.NoError(err) 30 app.Name = t.Name() 31 app.Type = nodeps.AppTypeDrupal9 32 app.Docroot = "web" 33 err = app.Stop(true, false) 34 require.NoError(t, err) 35 err = app.WriteConfig() 36 require.NoError(t, err) 37 38 testcommon.ClearDockerEnv() 39 40 t.Cleanup(func() { 41 err = app.Stop(true, false) 42 assert.NoError(err) 43 44 _ = os.Chdir(testDir) 45 _ = os.RemoveAll(siteDir) 46 home, _ := homedir.Dir() 47 _ = os.RemoveAll(filepath.Join(home, "tmp", "ddev-pull-git-test-repo")) 48 }) 49 50 err = PopulateExamplesCommandsHomeadditions(app.Name) 51 require.NoError(t, err) 52 53 // Build our git.yaml from the example file 54 s, err := os.ReadFile(app.GetConfigPath("providers/git.yaml.example")) 55 require.NoError(t, err) 56 err = os.WriteFile(app.GetConfigPath("providers/git.yaml"), []byte(s), 0666) 57 assert.NoError(err) 58 err = app.WriteConfig() 59 require.NoError(t, err) 60 61 provider, err := app.GetProvider("git") 62 require.NoError(t, err) 63 64 err = app.Start() 65 require.NoError(t, err) 66 err = app.Pull(provider, false, false, false) 67 assert.NoError(err) 68 69 assert.FileExists(filepath.Join(app.GetHostUploadDirFullPath(), "tmp/veggie-pasta-bake-hero-umami.jpg")) 70 out, _, err := app.Exec(&ExecOpts{ 71 Cmd: "echo 'select COUNT(*) from users_field_data where mail=\"margaret.hopper@example.com\";' | mysql -N", 72 Service: "db", 73 }) 74 assert.NoError(err) 75 assert.True(strings.HasPrefix(out, "1\n")) 76 }