| @ -0,0 +1,32 @@ | |||
| go-github tests | |||
| =============== | |||
| This directory contains additional test suites beyond the unit tests already in | |||
| [../github](../github). Whereas the unit tests run very quickly (since they | |||
| don't make any network calls) and are run by Travis on every commit, the tests | |||
| in this directory are only run manually. | |||
| The test packages are: | |||
| integration | |||
| ----------- | |||
| This will exercise the entire go-github library (or at least as much as is | |||
| practical) against the live GitHub API. These tests will verify that the | |||
| library is properly coded against the actual behavior of the API, and will | |||
| (hopefully) fail upon any incompatible change in the API. | |||
| Because these tests are running using live data, there is a much higher | |||
| probability of false positives in test failures due to network issues, test | |||
| data having been changed, etc. | |||
| These tests send real network traffic to the GitHub API and will exhaust the | |||
| default unregistered rate limit (60 requests per hour) very quickly. | |||
| Additionally, in order to test the methods that modify data, a real OAuth token | |||
| will need to be present. While the tests will try to be well-behaved in terms | |||
| of what data they modify, it is **strongly** recommended that these tests only | |||
| be run using a dedicated test account. | |||
| Run tests using: | |||
| GITHUB_AUTH_TOKEN=XXX go test -v ./integration | |||
| @ -0,0 +1,40 @@ | |||
| // Copyright 2014 The go-github AUTHORS. All rights reserved. | |||
| // | |||
| // Use of this source code is governed by a BSD-style | |||
| // license that can be found in the LICENSE file. | |||
| // Package tests contains integration tests for the go-github library. | |||
| // | |||
| // These tests call the live GitHub API, and therefore require a little more | |||
| // setup to run. See https://github.com/google/go-github/tree/master/tests/integration | |||
| // for more information | |||
| package tests | |||
| import ( | |||
| "os" | |||
| "code.google.com/p/goauth2/oauth" | |||
| "github.com/google/go-github/github" | |||
| ) | |||
| var ( | |||
| client *github.Client | |||
| // auth indicates whether tests are being run with an OAuth token. | |||
| // Tests can use this flag to skip certain tests when run without auth. | |||
| auth bool | |||
| ) | |||
| func init() { | |||
| token := os.Getenv("GITHUB_AUTH_TOKEN") | |||
| if token == "" { | |||
| println("!!! No OAuth token. Some tests won't run. !!!\n") | |||
| client = github.NewClient(nil) | |||
| } else { | |||
| t := &oauth.Transport{ | |||
| Token: &oauth.Token{AccessToken: token}, | |||
| } | |||
| client = github.NewClient(t.Client()) | |||
| auth = true | |||
| } | |||
| } | |||
| @ -0,0 +1,38 @@ | |||
| // Copyright 2014 The go-github AUTHORS. All rights reserved. | |||
| // | |||
| // Use of this source code is governed by a BSD-style | |||
| // license that can be found in the LICENSE file. | |||
| package tests | |||
| import "testing" | |||
| func TestUsers_List(t *testing.T) { | |||
| u, _, err := client.Users.ListAll(nil) | |||
| if err != nil { | |||
| t.Fatalf("Users.ListAll returned error: %v", err) | |||
| } | |||
| if len(u) == 0 { | |||
| t.Errorf("Users.ListAll returned no users") | |||
| } | |||
| // mojombo is user #1 | |||
| if want := "mojombo"; want != *u[0].Login { | |||
| t.Errorf("user[0].Login was %q, wanted %q", *u[0].Login, want) | |||
| } | |||
| } | |||
| func TestUsers_Get(t *testing.T) { | |||
| u, _, err := client.Users.Get("octocat") | |||
| if err != nil { | |||
| t.Fatalf("Users.Get returned error: %v", err) | |||
| } | |||
| if want := "octocat"; want != *u.Login { | |||
| t.Errorf("user.Login was %q, wanted %q", *u.Login, want) | |||
| } | |||
| if want := "The Octocat"; want != *u.Name { | |||
| t.Errorf("user.Name was %q, wanted %q", *u.Name, want) | |||
| } | |||
| } | |||