本文整理汇总了Golang中github.com/evergreen-ci/evergreen/testutil.ConfigureIntegrationTest函数的典型用法代码示例。如果您正苦于以下问题:Golang ConfigureIntegrationTest函数的具体用法?Golang ConfigureIntegrationTest怎么用?Golang ConfigureIntegrationTest使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ConfigureIntegrationTest函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: TestPatchTask
func TestPatchTask(t *testing.T) {
setupTlsConfigs(t)
testConfig := evergreen.TestConfig()
db.SetGlobalSessionProvider(db.SessionFactoryFromConfig(testConfig))
patchModes := []patchTestMode{InlinePatch, ExternalPatch}
testutil.ConfigureIntegrationTest(t, testConfig, "TestPatchTask")
for tlsString, tlsConfig := range tlsConfigs {
for _, testSetup := range testSetups {
Convey(testSetup.testSpec, t, func() {
Convey("With agent running a patched 'compile'"+tlsString, func() {
for _, mode := range patchModes {
Convey(fmt.Sprintf("Using patch mode %v", mode.String()), func() {
testTask, b, err := setupAPITestData(testConfig, "compile", "linux-64", "testdata/config_test_plugin/project/evergreen-ci-render.yml", mode, t)
githash := "1e5232709595db427893826ce19289461cba3f75"
setupPatches(mode, b, t,
patchRequest{"", "testdata/test.patch", githash},
patchRequest{"recursive", "testdata/testmodule.patch", githash})
testutil.HandleTestingErr(err, t, "Error setting up test data: %v", err)
testServer, err := apiserver.CreateTestServer(testConfig, tlsConfig, plugin.APIPlugins, Verbose)
testutil.HandleTestingErr(err, t, "Couldn't create apiserver: %v", err)
testAgent, err := New(testServer.URL, testTask.Id, testTask.Secret, "", testConfig.Api.HttpsCert)
// actually run the task.
// this function won't return until the whole thing is done.
testAgent.RunTask()
time.Sleep(100 * time.Millisecond)
testAgent.APILogger.FlushAndWait()
printLogsForTask(testTask.Id)
Convey("all scripts in task should have been run successfully", func() {
So(scanLogsForTask(testTask.Id, "executing the pre-run script"), ShouldBeTrue)
So(scanLogsForTask(testTask.Id, "executing the post-run script!"), ShouldBeTrue)
So(scanLogsForTask(testTask.Id, "Cloning into") || // git 1.8
scanLogsForTask(testTask.Id, "Initialized empty Git repository"), // git 1.7
ShouldBeTrue)
So(scanLogsForTask(testTask.Id, "i am patched!"), ShouldBeTrue)
So(scanLogsForTask(testTask.Id, "i am a patched module"), ShouldBeTrue)
So(scanLogsForTask(testTask.Id, "i am compiling!"), ShouldBeTrue)
So(scanLogsForTask(testTask.Id, "i am sanity testing!"), ShouldBeTrue)
testTask, err = task.FindOne(task.ById(testTask.Id))
testutil.HandleTestingErr(err, t, "Error finding test task: %v", err)
So(testTask.Status, ShouldEqual, evergreen.TaskSucceeded)
})
})
}
})
})
}
}
}
开发者ID:sr527,项目名称:evergreen,代码行数:57,代码来源:patch_integration_test.go
示例2: TestFinalizePatch
func TestFinalizePatch(t *testing.T) {
testutil.ConfigureIntegrationTest(t, patchTestConfig, "TestFinalizePatch")
Convey("With FinalizePatch on a project and commit event generated from GetPatchedProject path",
t, func() {
configPatch := resetPatchSetup(t, configFilePath)
Convey("a patched config should drive version creation", func() {
project, err := GetPatchedProject(configPatch, patchTestConfig)
So(err, ShouldBeNil)
yamlBytes, err := yaml.Marshal(project)
So(err, ShouldBeNil)
configPatch.PatchedConfig = string(yamlBytes)
version, err := model.FinalizePatch(configPatch, patchTestConfig)
So(err, ShouldBeNil)
So(version, ShouldNotBeNil)
// ensure the relevant builds/tasks were created
builds, err := build.Find(build.All)
So(err, ShouldBeNil)
So(len(builds), ShouldEqual, 1)
So(len(builds[0].Tasks), ShouldEqual, 2)
tasks, err := task.Find(task.All)
So(err, ShouldBeNil)
So(len(tasks), ShouldEqual, 2)
})
Convey("a patch that does not include the remote config should not "+
"drive version creation", func() {
patchedConfigFile := "fakeInPatchSoNotPatched"
configPatch := resetPatchSetup(t, patchedConfigFile)
project, err := GetPatchedProject(configPatch, patchTestConfig)
So(err, ShouldBeNil)
yamlBytes, err := yaml.Marshal(project)
So(err, ShouldBeNil)
configPatch.PatchedConfig = string(yamlBytes)
version, err := model.FinalizePatch(configPatch, patchTestConfig)
So(err, ShouldBeNil)
So(version, ShouldNotBeNil)
So(err, ShouldBeNil)
So(version, ShouldNotBeNil)
// ensure the relevant builds/tasks were created
builds, err := build.Find(build.All)
So(err, ShouldBeNil)
So(len(builds), ShouldEqual, 1)
So(len(builds[0].Tasks), ShouldEqual, 1)
tasks, err := task.Find(task.All)
So(err, ShouldBeNil)
So(len(tasks), ShouldEqual, 1)
})
Reset(func() {
db.Clear(distro.Collection)
})
})
}
开发者ID:tychoish,项目名称:evergreen,代码行数:55,代码来源:patch_test.go
示例3: TestS3CopyPluginExecution
func TestS3CopyPluginExecution(t *testing.T) {
testConfig := evergreen.TestConfig()
db.SetGlobalSessionProvider(db.SessionFactoryFromConfig(testConfig))
testutil.ConfigureIntegrationTest(t, testConfig, "TestS3CopyPluginExecution")
Convey("With a SimpleRegistry and test project file", t, func() {
registry := plugin.NewSimpleRegistry()
s3CopyPlugin := &S3CopyPlugin{}
testutil.HandleTestingErr(registry.Register(s3CopyPlugin), t, "failed to register s3Copy plugin")
testutil.HandleTestingErr(registry.Register(&s3Plugin.S3Plugin{}), t, "failed to register S3 plugin")
testutil.HandleTestingErr(
db.ClearCollections(model.PushlogCollection, version.Collection), t,
"error clearing test collections")
version := &version.Version{
Id: "",
}
So(version.Insert(), ShouldBeNil)
server, err := apiserver.CreateTestServer(testConfig, nil, plugin.APIPlugins, false)
testutil.HandleTestingErr(err, t, "Couldn't set up testing server")
httpCom := plugintest.TestAgentCommunicator("mocktaskid", "mocktasksecret", server.URL)
//server.InstallPlugin(s3CopyPlugin)
taskConfig, err := plugintest.CreateTestConfig("testdata/plugin_s3_copy.yml", t)
testutil.HandleTestingErr(err, t, "failed to create test config: %v", err)
taskConfig.WorkDir = "."
sliceAppender := &evergreen.SliceAppender{[]*slogger.Log{}}
logger := agent.NewTestLogger(sliceAppender)
taskConfig.Expansions.Update(map[string]string{
"aws_key": testConfig.Providers.AWS.Id,
"aws_secret": testConfig.Providers.AWS.Secret,
})
Convey("the s3 copy command should execute successfully", func() {
for _, task := range taskConfig.Project.Tasks {
So(len(task.Commands), ShouldNotEqual, 0)
for _, command := range task.Commands {
pluginCmds, err := registry.GetCommands(command, taskConfig.Project.Functions)
testutil.HandleTestingErr(err, t, "Couldn't get plugin command: %v")
So(pluginCmds, ShouldNotBeNil)
So(err, ShouldBeNil)
pluginCom := &agent.TaskJSONCommunicator{s3CopyPlugin.Name(), httpCom}
err = pluginCmds[0].Execute(logger, pluginCom, taskConfig,
make(chan bool))
So(err, ShouldBeNil)
}
}
})
})
}
开发者ID:himanshugpt,项目名称:evergreen,代码行数:54,代码来源:s3_copy_plugin_test.go
示例4: TestS3ParseUrl
func TestS3ParseUrl(t *testing.T) {
testutil.ConfigureIntegrationTest(t, testConfig, "TestS3ParseUrl")
Convey("When given an S3 location to parse...", t, func() {
Convey("the bucket and path should be parsed correctly", func() {
bucket, path, err := GetS3Location(testURL)
So(err, ShouldEqual, nil)
So(bucket, ShouldEqual, testURLBucket)
So(path, ShouldEqual, testURLPath)
})
})
}
开发者ID:tychoish,项目名称:evergreen,代码行数:11,代码来源:s3_test.go
示例5: TestPluginFunctions
func TestPluginFunctions(t *testing.T) {
testConfig := evergreen.TestConfig()
testutil.ConfigureIntegrationTest(t, testConfig, "TestPatchTask")
Convey("With a SimpleRegistry", t, func() {
Convey("with a project file containing functions", func() {
registry := plugin.NewSimpleRegistry()
err := registry.Register(&shell.ShellPlugin{})
testutil.HandleTestingErr(err, t, "Couldn't register plugin")
err = registry.Register(&expansions.ExpansionsPlugin{})
testutil.HandleTestingErr(err, t, "Couldn't register plugin")
testServer, err := apiserver.CreateTestServer(testConfig, nil, plugin.APIPlugins, false)
testutil.HandleTestingErr(err, t, "Couldn't set up testing server")
taskConfig, err := createTestConfig("testdata/plugin_project_functions.yml", t)
testutil.HandleTestingErr(err, t, "failed to create test config: %v", err)
Convey("all commands in project file should parse successfully", func() {
for _, newTask := range taskConfig.Project.Tasks {
for _, command := range newTask.Commands {
pluginCmd, err := registry.GetCommands(command, taskConfig.Project.Functions)
testutil.HandleTestingErr(err, t, "Got error getting plugin command: %v")
So(pluginCmd, ShouldNotBeNil)
So(err, ShouldBeNil)
}
}
})
httpCom, err := agent.NewHTTPCommunicator(testServer.URL, "mocktaskid", "mocktasksecret", "", nil)
So(err, ShouldBeNil)
So(httpCom, ShouldNotBeNil)
Convey("all commands in test project should execute successfully", func() {
sliceAppender := &evergreen.SliceAppender{[]*slogger.Log{}}
logger := agent.NewTestLogger(sliceAppender)
for _, newTask := range taskConfig.Project.Tasks {
So(len(newTask.Commands), ShouldNotEqual, 0)
for _, command := range newTask.Commands {
pluginCmds, err := registry.GetCommands(command, taskConfig.Project.Functions)
testutil.HandleTestingErr(err, t, "Couldn't get plugin command: %v")
So(pluginCmds, ShouldNotBeNil)
So(err, ShouldBeNil)
So(len(pluginCmds), ShouldEqual, 1)
cmd := pluginCmds[0]
pluginCom := &agent.TaskJSONCommunicator{cmd.Plugin(), httpCom}
err = cmd.Execute(logger, pluginCom, taskConfig, make(chan bool))
So(err, ShouldBeNil)
}
}
})
})
})
}
开发者ID:sr527,项目名称:evergreen,代码行数:53,代码来源:plugin_test.go
示例6: TestJiraIntegration
func TestJiraIntegration(t *testing.T) {
testutil.ConfigureIntegrationTest(t, testConfig, "TestJiraIntegration")
Convey("With a JIRA rest interface that makes a valid request", t, func() {
jira := JiraHandler{liveHttp{}, testConfig.Jira.Host, testConfig.Jira.Username, testConfig.Jira.Password}
Convey("the request for a ticket should return a valid ticket response", func() {
ticket, err := jira.GetJIRATicket("BF-1")
So(err, ShouldBeNil)
So(ticket.Key, ShouldEqual, "BF-1")
So(ticket.Fields.Project.Name, ShouldEqual, "Build Failures")
})
})
}
开发者ID:himanshugpt,项目名称:evergreen,代码行数:13,代码来源:jira_test.go
示例7: TestCLIFetchSource
func TestCLIFetchSource(t *testing.T) {
testutil.ConfigureIntegrationTest(t, testConfig, "TestCLIFetchSource")
Convey("with a task containing patches and modules", t, func() {
testSetup := setupCLITestHarness()
err := os.RemoveAll("source-patch-1_sample")
So(err, ShouldBeNil)
// first, create a patch
patchSub := patchSubmission{"sample",
testPatch,
"sample patch",
"3c7bfeb82d492dc453e7431be664539c35b5db4b",
"all",
[]string{"all"},
false}
// Set up a test patch that contains module changes
ac, rc, _, err := getAPIClients(&Options{testSetup.settingsFilePath})
So(err, ShouldBeNil)
newPatch, err := ac.PutPatch(patchSub)
So(err, ShouldBeNil)
patches, err := ac.GetPatches(0)
So(err, ShouldBeNil)
err = ac.UpdatePatchModule(newPatch.Id.Hex(), "render-module", testModulePatch, "1e5232709595db427893826ce19289461cba3f75")
So(ac.FinalizePatch(newPatch.Id.Hex()), ShouldBeNil)
patches, err = ac.GetPatches(0)
So(err, ShouldBeNil)
testTask, err := task.FindOne(
db.Query(bson.M{
task.VersionKey: patches[0].Version,
task.BuildVariantKey: "ubuntu",
}))
So(err, ShouldBeNil)
So(testTask, ShouldNotBeNil)
err = fetchSource(ac, rc, "", testTask.Id, false)
So(err, ShouldBeNil)
fileStat, err := os.Stat("./source-patch-1_sample/README.md")
So(err, ShouldBeNil)
// If patch was applied correctly, README.md will have a non-zero size
So(fileStat.Size, ShouldNotEqual, 0)
// If module was fetched, "render" directory should have been created.
// The "blah.md" file should have been created if the patch was applied successfully.
fileStat, err = os.Stat("./source-patch-1_sample/modules/render-module/blah.md")
So(err, ShouldBeNil)
So(fileStat.Size, ShouldNotEqual, 0)
})
}
开发者ID:tychoish,项目名称:evergreen,代码行数:51,代码来源:cli_integration_test.go
示例8: TestGetPatchedProject
func TestGetPatchedProject(t *testing.T) {
testutil.ConfigureIntegrationTest(t, patchTestConfig, "TestConfigurePatch")
Convey("With calling GetPatchedProject with a config and remote configuration path",
t, func() {
configPatch := resetPatchSetup(t, configFilePath)
Convey("Calling GetPatchedProject returns a valid project given a patch and settings", func() {
project, err := GetPatchedProject(configPatch, patchTestConfig)
So(err, ShouldBeNil)
So(project, ShouldNotBeNil)
})
Reset(func() {
db.Clear(distro.Collection)
})
})
}
开发者ID:amidvidy,项目名称:evergreen,代码行数:15,代码来源:patch_test.go
示例9: TestTaskAbortion
func TestTaskAbortion(t *testing.T) {
setupTlsConfigs(t)
testutil.ConfigureIntegrationTest(t, testConfig, "TestTaskAbortion")
for tlsString, tlsConfig := range tlsConfigs {
for _, testSetup := range testSetups {
Convey(testSetup.testSpec, t, func() {
Convey("With agent running a slow test and live API server over "+tlsString, func() {
testTask, _, err := setupAPITestData(testConfig, "very_slow_task", "linux-64", NoPatch, t)
testutil.HandleTestingErr(err, t, "Failed to find test task")
testServer, err := apiserver.CreateTestServer(testConfig, tlsConfig, plugin.APIPlugins, Verbose)
testutil.HandleTestingErr(err, t, "Couldn't create apiserver: %v", err)
testAgent, err := createAgent(testServer, testTask)
testutil.HandleTestingErr(err, t, "failed to create agent: %v")
Convey("when the abort signal is triggered on the task", func() {
go func() {
// Wait for a few seconds, then switch the task to aborted!
time.Sleep(3 * time.Second)
err := testTask.Abort("", true)
testutil.HandleTestingErr(err, t, "Failed to abort test task")
fmt.Println("aborted task.")
}()
// actually run the task.
// this function won't return until the whole thing is done.
_, err := testAgent.RunTask()
So(err, ShouldBeNil)
testAgent.APILogger.Flush()
time.Sleep(1 * time.Second)
printLogsForTask(testTask.Id)
Convey("the pre and post-run scripts should have run", func() {
So(scanLogsForTask(testTask.Id, "executing the pre-run script"), ShouldBeTrue)
So(scanLogsForTask(testTask.Id, "executing the post-run script!"), ShouldBeTrue)
So(scanLogsForTask(testTask.Id, "Received abort signal - stopping."), ShouldBeTrue)
So(scanLogsForTask(testTask.Id, "done with very_slow_task!"), ShouldBeFalse)
testTask, err = model.FindTask(testTask.Id)
testutil.HandleTestingErr(err, t, "Failed to find test task")
So(testTask.Status, ShouldEqual, evergreen.TaskUndispatched)
})
})
})
})
}
}
}
开发者ID:himanshugpt,项目名称:evergreen,代码行数:48,代码来源:api_integration_test.go
示例10: TestTaskFailures
func TestTaskFailures(t *testing.T) {
setupTlsConfigs(t)
testutil.ConfigureIntegrationTest(t, testConfig, "TestTaskFailures")
for tlsString, tlsConfig := range tlsConfigs {
for _, testSetup := range testSetups {
Convey(testSetup.testSpec, t, func() {
Convey("With agent running a failing test and live API server over "+tlsString, func() {
testTask, _, err := setupAPITestData(testConfig, "failing_task",
"linux-64", NoPatch, t)
testutil.HandleTestingErr(err, t, "Couldn't create test data: %v", err)
testServer, err := apiserver.CreateTestServer(testConfig, tlsConfig, plugin.APIPlugins, Verbose)
testutil.HandleTestingErr(err, t, "Couldn't create apiserver: %v", err)
testAgent, err := createAgent(testServer, testTask)
testutil.HandleTestingErr(err, t, "failed to create agent: %v")
// actually run the task.
// this function won't return until the whole thing is done.
testAgent.RunTask()
time.Sleep(100 * time.Millisecond)
testAgent.APILogger.FlushAndWait()
printLogsForTask(testTask.Id)
Convey("the pre and post-run scripts should have run", func() {
So(scanLogsForTask(testTask.Id, "executing the pre-run script"), ShouldBeTrue)
So(scanLogsForTask(testTask.Id, "executing the post-run script!"), ShouldBeTrue)
Convey("the task should have run up until its first failure", func() {
So(scanLogsForTask(testTask.Id, "starting failing_task!"), ShouldBeTrue)
So(scanLogsForTask(testTask.Id, "done with failing_task!"), ShouldBeFalse)
})
Convey("the tasks's final status should be FAILED", func() {
testTask, err = model.FindTask(testTask.Id)
testutil.HandleTestingErr(err, t, "Failed to find test task")
So(testTask.Status, ShouldEqual, evergreen.TaskFailed)
So(testTask.Details.Status, ShouldEqual, evergreen.TaskFailed)
So(testTask.Details.Description, ShouldEqual, "failing shell command")
So(testTask.Details.TimedOut, ShouldBeFalse)
So(testTask.Details.Type, ShouldEqual, model.SystemCommandType)
})
})
})
})
}
}
}
开发者ID:himanshugpt,项目名称:evergreen,代码行数:48,代码来源:api_integration_test.go
示例11: TestPatchTask
func TestPatchTask(t *testing.T) {
setupTlsConfigs(t)
testConfig := evergreen.TestConfig()
db.SetGlobalSessionProvider(db.SessionFactoryFromConfig(testConfig))
testutil.ConfigureIntegrationTest(t, testConfig, "TestPatchTask")
for tlsString, tlsConfig := range tlsConfigs {
for _, testSetup := range testSetups {
Convey(testSetup.testSpec, t, func() {
Convey("With agent running a patched 'compile'"+tlsString, func() {
testTask, _, err := setupAPITestData(testConfig, "compile", "linux-64", true, t)
testutil.HandleTestingErr(err, t, "Error setting up test data: %v", err)
testServer, err := apiserver.CreateTestServer(testConfig, tlsConfig, plugin.Published, Verbose)
testutil.HandleTestingErr(err, t, "Couldn't create apiserver: %v", err)
testAgent, err := New(testServer.URL, testTask.Id, testTask.Secret, "", testConfig.Expansions["api_httpscert"])
// actually run the task.
// this function won't return until the whole thing is done.
testAgent.RunTask()
time.Sleep(100 * time.Millisecond)
testAgent.APILogger.FlushAndWait()
printLogsForTask(testTask.Id)
Convey("all scripts in task should have been run successfully", func() {
So(scanLogsForTask(testTask.Id, "executing the pre-run script!"), ShouldBeTrue)
So(scanLogsForTask(testTask.Id, "executing the post-run script!"), ShouldBeTrue)
So(scanLogsForTask(testTask.Id, "Cloning into") || // git 1.8
scanLogsForTask(testTask.Id, "Initialized empty Git repository"), // git 1.7
ShouldBeTrue)
So(scanLogsForTask(testTask.Id, "i am patched!"), ShouldBeTrue)
So(scanLogsForTask(testTask.Id, "i am a patched module"), ShouldBeTrue)
So(scanLogsForTask(testTask.Id, "i am compiling!"), ShouldBeTrue)
So(scanLogsForTask(testTask.Id, "i am sanity testing!"), ShouldBeTrue)
testTask, err = model.FindTask(testTask.Id)
testutil.HandleTestingErr(err, t, "Error finding test task: %v", err)
So(testTask.Status, ShouldEqual, evergreen.TaskSucceeded)
})
})
})
}
}
}
开发者ID:markbenvenuto,项目名称:evergreen,代码行数:47,代码来源:patch_integration_test.go
示例12: TestGetRemoteConfig
func TestGetRemoteConfig(t *testing.T) {
dropTestDB(t)
var self GithubRepositoryPoller
testutil.ConfigureIntegrationTest(t, testConfig, "TestGetRemoteConfig")
Convey("When fetching a specific github revision configuration...",
t, func() {
self.ProjectRef = &model.ProjectRef{
Identifier: "mci-test",
DisplayName: "MCI Test",
Owner: "deafgoat",
Repo: "config",
Branch: "master",
RepoKind: "github",
RemotePath: "random.txt",
Enabled: true,
Private: false,
BatchTime: 60,
Tracked: true,
}
self.OauthToken = testConfig.Credentials[self.ProjectRef.RepoKind]
Convey("The config file at the requested revision should be "+
"exactly what is returned", func() {
projectConfig, err := self.GetRemoteConfig(firstRemoteConfigRef)
testutil.HandleTestingErr(err, t, "Error fetching github "+
"configuration file")
So(projectConfig, ShouldNotBeNil)
So(len(projectConfig.Tasks), ShouldEqual, 0)
projectConfig, err = self.GetRemoteConfig(secondRemoteConfigRef)
testutil.HandleTestingErr(err, t, "Error fetching github "+
"configuration file")
So(projectConfig, ShouldNotBeNil)
So(len(projectConfig.Tasks), ShouldEqual, 1)
})
Convey("an invalid revision should return an error", func() {
_, err := self.GetRemoteConfig("firstRemoteConfRef")
So(err, ShouldNotBeNil)
})
Convey("an invalid project configuration should error out", func() {
_, err := self.GetRemoteConfig(badRemoteConfigRef)
So(err, ShouldNotBeNil)
})
})
}
开发者ID:bjori,项目名称:evergreen,代码行数:47,代码来源:github_poller_test.go
示例13: TestGetRevisionsSinceWithPaging
func TestGetRevisionsSinceWithPaging(t *testing.T) {
dropTestDB(t)
testutil.ConfigureIntegrationTest(t, testConfig, "TestGetRevisionsSince")
grp := &GithubRepositoryPoller{
ProjectRef: evgProjectRef,
OauthToken: testConfig.Credentials[evgProjectRef.RepoKind],
}
Convey("When fetching commits from the evergreen repository", t, func() {
Convey("fetching > the size of a github page should succeed", func() {
revisions, err := grp.GetRevisionsSince(distantEvgRevision, 5000)
So(err, ShouldBeNil)
Convey("and the revision should be found", func() {
So(len(revisions), ShouldNotEqual, 0)
})
})
})
}
开发者ID:tychoish,项目名称:evergreen,代码行数:17,代码来源:github_poller_test.go
示例14: TestGetGithubCommits
func TestGetGithubCommits(t *testing.T) {
testutil.ConfigureIntegrationTest(t, testConfig, "TestGetGithubCommits")
Convey("When requesting github commits with a valid OAuth token...", t, func() {
Convey("Fetching commits from the repository should not return any errors", func() {
commitsURL := "https://api.github.com/repos/deafgoat/mci-test/commits"
_, _, err := GetGithubCommits(testConfig.Credentials["github"], commitsURL)
So(err, ShouldBeNil)
})
Convey("Fetching commits from the repository should return all available commits", func() {
commitsURL := "https://api.github.com/repos/deafgoat/mci-test/commits"
githubCommits, _, err := GetGithubCommits(testConfig.Credentials["github"], commitsURL)
So(err, ShouldBeNil)
So(len(githubCommits), ShouldEqual, 3)
})
})
}
开发者ID:tychoish,项目名称:evergreen,代码行数:17,代码来源:git_test.go
示例15: TestGotestPluginWithEnvironmentVariables
func TestGotestPluginWithEnvironmentVariables(t *testing.T) {
Convey("With gotest plugin installed into plugin registry", t, func() {
reset(t)
testConfig := evergreen.TestConfig()
testutil.ConfigureIntegrationTest(t, testConfig, "TestGotestPluginWithEnvironmentVariables")
registry := plugin.NewSimpleRegistry()
testPlugin := &GotestPlugin{}
err := registry.Register(testPlugin)
testutil.HandleTestingErr(err, t, "Couldn't register plugin %v")
server, err := apiserver.CreateTestServer(testConfig, nil, plugin.APIPlugins, true)
testutil.HandleTestingErr(err, t, "Couldn't set up testing server")
httpCom := plugintest.TestAgentCommunicator("testTaskId", "testTaskSecret", server.URL)
sliceAppender := &evergreen.SliceAppender{[]*slogger.Log{}}
logger := agent.NewTestLogger(sliceAppender)
Convey("test command should get a copy of custom environment variables", func() {
curWD, err := os.Getwd()
testutil.HandleTestingErr(err, t, "Couldn't get working directory: %v")
taskConfig, err := plugintest.CreateTestConfig("testdata/env.yml", t)
// manually override working directory to the main repo, since this
// is much easier than copying over the required testing dependencies
// to a temporary directory
testutil.HandleTestingErr(err, t, "Couldn't set up test config %v")
taskConfig.WorkDir = curWD
_, _, err = plugintest.SetupAPITestData("testTask", false, t)
testutil.HandleTestingErr(err, t, "Couldn't set up test documents")
for _, task := range taskConfig.Project.Tasks {
So(len(task.Commands), ShouldNotEqual, 0)
for _, command := range task.Commands {
pluginCmds, err := registry.GetCommands(command, taskConfig.Project.Functions)
testutil.HandleTestingErr(err, t, "Couldn't get plugin command: %v")
So(pluginCmds, ShouldNotBeNil)
So(err, ShouldBeNil)
pluginCom := &agent.TaskJSONCommunicator{pluginCmds[0].Plugin(), httpCom}
err = pluginCmds[0].Execute(logger, pluginCom, taskConfig, make(chan bool))
So(err, ShouldBeNil)
}
}
})
})
}
开发者ID:himanshugpt,项目名称:evergreen,代码行数:45,代码来源:gotest_plugin_test.go
示例16: TestFetchRevisions
func TestFetchRevisions(t *testing.T) {
dropTestDB(t)
testutil.ConfigureIntegrationTest(t, testConfig, "TestFetchRevisions")
Convey("With a GithubRepositoryPoller with a valid OAuth token...", t, func() {
err := testutil.CreateTestLocalConfig(testConfig, "mci-test", "")
So(err, ShouldBeNil)
repoTracker := RepoTracker{
testConfig,
projectRef,
NewGithubRepositoryPoller(projectRef, testConfig.Credentials["github"]),
}
Convey("Fetching commits from the repository should not return "+
"any errors", func() {
So(repoTracker.FetchRevisions(10), ShouldBeNil)
})
Convey("Only get 3 revisions from the given repository if given a "+
"limit of 4 commits where only 3 exist", func() {
testutil.HandleTestingErr(repoTracker.FetchRevisions(4), t,
"Error running repository process %v")
numVersions, err := version.TotalVersions(bson.M{})
testutil.HandleTestingErr(err, t, "Error finding all versions")
So(numVersions, ShouldEqual, 3)
})
Convey("Only get 2 revisions from the given repository if given a "+
"limit of 2 commits where 3 exist", func() {
testutil.HandleTestingErr(repoTracker.FetchRevisions(2), t,
"Error running repository process %v")
numVersions, err := version.TotalVersions(bson.M{})
testutil.HandleTestingErr(err, t, "Error finding all versions")
So(numVersions, ShouldEqual, 2)
})
Reset(func() {
dropTestDB(t)
})
})
}
开发者ID:himanshugpt,项目名称:evergreen,代码行数:40,代码来源:repotracker_test.go
示例17: TestPutS3File
func TestPutS3File(t *testing.T) {
testutil.ConfigureIntegrationTest(t, testConfig, "TestPutS3File")
Convey("When given a file to copy to S3...", t, func() {
Convey("a valid source file with a long key should return an error ", func() {
//Make a test file with some random content.
tempfile, err := ioutil.TempFile("", "randomString")
So(err, ShouldEqual, nil)
randStr := util.RandomString()
_, err = tempfile.Write([]byte(randStr))
So(err, ShouldEqual, nil)
tempfile.Close()
// put the test file on S3
auth := &aws.Auth{
AccessKey: testConfig.Providers.AWS.Id,
SecretKey: testConfig.Providers.AWS.Secret,
}
longURLKey := sourceURL + strings.Repeat("suffix", 300)
err = PutS3File(auth, tempfile.Name(), longURLKey, "application/x-tar", "public-read")
So(err, ShouldNotEqual, nil)
})
Convey("a valid source file with a valid key should return no errors", func() {
//Make a test file with some random content.
tempfile, err := ioutil.TempFile("", "randomString")
So(err, ShouldEqual, nil)
randStr := util.RandomString()
_, err = tempfile.Write([]byte(randStr))
So(err, ShouldEqual, nil)
tempfile.Close()
// put the test file on S3
auth := &aws.Auth{
AccessKey: testConfig.Providers.AWS.Id,
SecretKey: testConfig.Providers.AWS.Secret,
}
err = PutS3File(auth, tempfile.Name(), sourceURL, "application/x-tar", "public-read")
So(err, ShouldEqual, nil)
})
})
}
开发者ID:tychoish,项目名称:evergreen,代码行数:40,代码来源:s3_test.go
示例18: TestGetRevisionsSince
func TestGetRevisionsSince(t *testing.T) {
dropTestDB(t)
var self GithubRepositoryPoller
testutil.ConfigureIntegrationTest(t, testConfig, "TestGetRevisionsSince")
Convey("When fetching github revisions (by commit) - from a repo "+
"containing 3 commits - given a valid Oauth token...", t, func() {
self.ProjectRef = projectRef
self.OauthToken = testConfig.Credentials[self.ProjectRef.RepoKind]
Convey("There should be only two revisions since the first revision",
func() {
// The test repository contains only 3 revisions with revision
// 99162ee5bc41eb314f5bb01bd12f0c43e9cb5f32 being the first
// revision
revisions, err := self.GetRevisionsSince(firstRevision, 10)
testutil.HandleTestingErr(err, t, "Error fetching github revisions")
So(len(revisions), ShouldEqual, 2)
})
Convey("There should be no revisions since the last revision", func() {
// The test repository contains only 3 revisions with revision
// d0d878e81b303fd2abbf09331e54af41d6cd0c7d being the last revision
revisions, err := self.GetRevisionsSince(lastRevision, 10)
testutil.HandleTestingErr(err, t, "Error fetching github revisions")
So(len(revisions), ShouldEqual, 0)
})
Convey("There should be an error returned if the requested revision "+
"isn't found", func() {
// The test repository contains only 3 revisions with revision
// d0d878e81b303fd2abbf09331e54af41d6cd0c7d being the last revision
revisions, err := self.GetRevisionsSince("lastRevision", 10)
So(len(revisions), ShouldEqual, 0)
So(err, ShouldNotBeNil)
})
})
}
开发者ID:bjori,项目名称:evergreen,代码行数:39,代码来源:github_poller_test.go
示例19: TestGetAllRevisions
func TestGetAllRevisions(t *testing.T) {
dropTestDB(t)
var self GithubRepositoryPoller
testutil.ConfigureIntegrationTest(t, testConfig, "TestGetAllRevisions")
Convey("When fetching recent github revisions (by count) - from a repo "+
"containing 3 commits - given a valid Oauth token...", t, func() {
self.ProjectRef = projectRef
self.OauthToken = testConfig.Credentials[self.ProjectRef.RepoKind]
// Even though we're requesting far more revisions than exists in the
// remote repository, we should only get the revisions that actually
// exist upstream - a total of 3
Convey("There should be only three revisions even if you request more "+
"than 3", func() {
revisions, err := self.GetRecentRevisions(123)
testutil.HandleTestingErr(err, t, "Error fetching github revisions")
So(len(revisions), ShouldEqual, 3)
})
// Get only one recent revision and ensure it's the right revision
Convey("There should be only be one if you request 1 and it should be "+
"the latest", func() {
revisions, err := self.GetRecentRevisions(1)
testutil.HandleTestingErr(err, t, "Error fetching github revisions")
So(len(revisions), ShouldEqual, 1)
So(revisions[0].Revision, ShouldEqual, lastRevision)
})
// Get no recent revisions
Convey("There should be no revisions if you request 0", func() {
revisions, err := self.GetRecentRevisions(0)
testutil.HandleTestingErr(err, t, "Error fetching github revisions")
So(len(revisions), ShouldEqual, 0)
})
})
}
开发者ID:bjori,项目名称:evergreen,代码行数:38,代码来源:github_poller_test.go
示例20: TestGetChangedFiles
func TestGetChangedFiles(t *testing.T) {
dropTestDB(t)
var grp GithubRepositoryPoller
testutil.ConfigureIntegrationTest(t, testConfig, "TestGetAllRevisions")
Convey("When fetching changed files from evergreen-ci/evergreen ", t, func() {
grp.ProjectRef = evgProjectRef
grp.OauthToken = testConfig.Credentials[grp.ProjectRef.RepoKind]
r1 := "b11fcb25624c6a0649dd35b895f5b550d649a128"
Convey("the revision "+r1+" should have 8 files", func() {
files, err := grp.GetChangedFiles(r1)
So(err, ShouldBeNil)
So(len(files), ShouldEqual, 8)
So(files, ShouldContain, "cloud/providers/ec2/ec2.go")
So(files, ShouldContain, "public/static/dist/css/styles.css")
// ...probably don't need to check all 8
})
r2 := "3c0133dbd4b35418c11df7b6e3a1ae31f966de42"
Convey("the revision "+r2+" should have 1 file", func() {
files, err := grp.GetChangedFiles(r2)
So(err, ShouldBeNil)
So(len(files), ShouldEqual, 1)
So(files, ShouldContain, "ui/rest_project.go")
})
Convey("a revision that does not exist should fail", func() {
files, err := grp.GetChangedFiles("00000000000000000000000000")
So(err, ShouldNotBeNil)
So(err.Error(), ShouldContainSubstring, "Not Found")
So(files, ShouldBeNil)
})
})
}
开发者ID:tychoish,项目名称:evergreen,代码行数:36,代码来源:github_poller_test.go
注:本文中的github.com/evergreen-ci/evergreen/testutil.ConfigureIntegrationTest函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论