Skip to content

Commit 527895d

Browse files
authored
Merge pull request #2 from atlassian/cwood/fix-testing-issue
Cwood/fix testing issue
2 parents 921e278 + 7ae7f8e commit 527895d

16 files changed

+198
-98
lines changed

.travis.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
language: go
22

33
go:
4-
- 1.7
4+
- 1.8
5+
- 1.9
56
- tip
67

78
env:

bulk_test.go

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,20 @@ import (
99

1010
func TestBulkResourceModifyDelete(t *testing.T) {
1111
t.Parallel()
12+
13+
client := newTestClient(t)
14+
1215
org, err := client.GetOrganization(getDefaultOrg())
1316
if err != nil {
1417
t.Fatal(err)
1518
}
16-
team, err := client.CreateTeam(org, "test team for go project", nil)
17-
if err != nil {
18-
t.Fatal(err)
19-
}
20-
project, err := client.CreateProject(org, team, "Test python project issues", nil)
21-
if err != nil {
22-
t.Fatal(err)
23-
}
19+
20+
team, cleanup := createTeamHelper(t)
21+
project, cleanupproj := createProjectHelper(t, team)
22+
23+
defer cleanupproj()
24+
defer cleanup()
25+
2426
dsnkey, err := client.CreateClientKey(org, project, "testing key")
2527
if err != nil {
2628
t.Fatal(err)
@@ -32,7 +34,7 @@ func TestBulkResourceModifyDelete(t *testing.T) {
3234
}
3335

3436
for i := 0; i <= 100; i++ {
35-
ravenClient.CaptureMessage(fmt.Sprintf("Testing message %d", i), nil, nil)
37+
ravenClient.CaptureMessageAndWait(fmt.Sprintf("Testing message %d", i), nil, nil)
3638
}
3739

3840
t.Run("Fetch all messages for project", func(t *testing.T) {
@@ -81,7 +83,4 @@ func TestBulkResourceModifyDelete(t *testing.T) {
8183
})
8284
})
8385

84-
if err := client.DeleteTeam(org, team); err != nil {
85-
t.Error(err)
86-
}
8786
}

client.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ func (c *Client) hasError(response *http.Response) error {
7575
}
7676

7777
if err := json.Unmarshal(body, &apierror); err != nil {
78-
return err
78+
apierror.Detail = string(body)
7979
}
8080

8181
return error(apierror)
@@ -130,6 +130,7 @@ func (c *Client) newRequest(method, endpoint string, in interface{}) (*http.Requ
130130
}
131131
req.Header.Add("Content-Type", "application/json")
132132
req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", c.AuthToken))
133+
req.Header.Add("Accept", "application/json")
133134
req.Close = true
134135

135136
return req, nil

client_test.go

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,52 @@
11
package sentry
22

33
import (
4+
"fmt"
5+
"math/rand"
46
"os"
57
"testing"
68
)
79

8-
var authtoken = os.Getenv("SENTRY_AUTH_TOKEN")
9-
var endpoint = os.Getenv("SENTRY_ENDPOINT")
10-
var defaultorg = os.Getenv("SENTRY_DEFAULT_ORG")
11-
var client, clienterr = NewClient(authtoken, &endpoint, nil)
12-
1310
func getDefaultOrg() string {
11+
defaultorg := os.Getenv("SENTRY_DEFAULT_ORG")
12+
1413
if defaultorg == "" {
1514
return "sentry"
1615
}
1716

1817
return defaultorg
1918
}
2019

20+
func newTestClient(t *testing.T) *Client {
21+
authtoken := os.Getenv("SENTRY_AUTH_TOKEN")
22+
endpoint := os.Getenv("SENTRY_ENDPOINT")
23+
24+
if authtoken == "" {
25+
t.Fatal("Need a authtoken to continue. Please set SENTRY_AUTH_TOKEN")
26+
}
27+
28+
if endpoint == "" {
29+
endpoint = "https://sentry.io/api/0/"
30+
}
31+
32+
client, clienterr := NewClient(authtoken, &endpoint, nil)
33+
if clienterr != nil {
34+
t.Fatal(clienterr)
35+
}
36+
37+
return client
38+
}
39+
40+
func generateIdentifier(prefix string) string {
41+
return fmt.Sprintf("%s %d", prefix, rand.Int())
42+
}
43+
2144
func TestClientBadEndpoint(t *testing.T) {
2245
t.Parallel()
2346
badendpoint := ""
47+
48+
authtoken := os.Getenv("SENTRY_AUTH_TOKEN")
49+
2450
_, berr := NewClient(authtoken, &badendpoint, nil)
2551
if berr == nil {
2652
t.Error("Should have gotten an error for an empty endpoint")

error.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import (
66

77
// APIError is used when the api returns back a non 200 response
88
type APIError struct {
9-
Detail string `json:"detail"`
9+
Detail string `json:"detail,omitempty"`
1010
StatusCode int `json:"-"`
1111
}
1212

events_test.go

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,18 +10,20 @@ import (
1010

1111
func TestEventsResource(t *testing.T) {
1212
t.Parallel()
13+
14+
client := newTestClient(t)
15+
1316
org, err := client.GetOrganization(getDefaultOrg())
1417
if err != nil {
1518
t.Fatal(err)
1619
}
17-
team, err := client.CreateTeam(org, "test team for go project", nil)
18-
if err != nil {
19-
t.Fatal(err)
20-
}
21-
project, err := client.CreateProject(org, team, "Test go project events resource", nil)
22-
if err != nil {
23-
t.Fatal(err)
24-
}
20+
21+
team, cleanup := createTeamHelper(t)
22+
defer cleanup()
23+
24+
project, cleanupproj := createProjectHelper(t, team)
25+
defer cleanupproj()
26+
2527
dsnkey, err := client.CreateClientKey(org, project, "testing key")
2628
if err != nil {
2729
t.Fatal(err)
@@ -83,8 +85,4 @@ func TestEventsResource(t *testing.T) {
8385

8486
})
8587

86-
if err := client.DeleteTeam(org, team); err != nil {
87-
t.Error(err)
88-
}
89-
9088
}

file_test.go

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,26 @@ package sentry
22

33
import (
44
"bytes"
5+
"fmt"
56
"testing"
67
)
78

89
func TestReleaseFileResource(t *testing.T) {
910
t.Parallel()
11+
12+
client := newTestClient(t)
13+
1014
org, err := client.GetOrganization(getDefaultOrg())
1115
if err != nil {
1216
t.Fatal(err)
1317
}
14-
team, err := client.CreateTeam(org, "test team for go project", nil)
15-
if err != nil {
16-
t.Fatal(err)
17-
}
18-
project, err := client.CreateProject(org, team, "Test python project", nil)
19-
if err != nil {
20-
t.Fatal(err)
21-
}
18+
19+
team, cleanup := createTeamHelper(t)
20+
defer cleanup()
21+
22+
project, cleanupproj := createProjectHelper(t, team)
23+
defer cleanupproj()
24+
2225
newrelease := NewRelease{
2326
Version: "1.0.0",
2427
}
@@ -32,16 +35,18 @@ func TestReleaseFileResource(t *testing.T) {
3235
Hello World!
3336
`
3437

38+
filename := fmt.Sprintf("%s-example.txt", project.ID)
39+
3540
file, err := client.UploadReleaseFile(org, project, release,
36-
"example.txt",
41+
filename,
3742
bytes.NewBuffer([]byte(data)),
3843
"Content-Type:text/plain; encoding=utf-8")
3944

4045
if err != nil {
4146
t.Error("Failed to save file to sentry", err)
4247
}
4348

44-
if file.Name != "example.txt" {
49+
if file.Name != filename {
4550
t.Error("File did not save as example.txt")
4651
}
4752
t.Run("Fetch the release files for this release", func(t *testing.T) {
@@ -83,11 +88,4 @@ func TestReleaseFileResource(t *testing.T) {
8388
})
8489
})
8590
})
86-
delprojerr := client.DeleteProject(org, project)
87-
if delprojerr != nil {
88-
t.Fatal(delprojerr)
89-
}
90-
if delteam := client.DeleteTeam(org, team); delteam != nil {
91-
t.Error(delteam)
92-
}
9391
}

issue_test.go

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,58 @@
11
package sentry
22

33
import (
4+
"fmt"
45
"testing"
6+
7+
"github.com/getsentry/raven-go"
58
)
69

710
func TestIssueResource(t *testing.T) {
8-
t.Parallel()
11+
12+
client := newTestClient(t)
913
org, err := client.GetOrganization(getDefaultOrg())
1014
if err != nil {
1115
t.Fatal(err)
1216
}
13-
team, err := client.CreateTeam(org, "test team for go project", nil)
17+
18+
team, cleanup := createTeamHelper(t)
19+
defer cleanup()
20+
21+
project, cleanupproj := createProjectHelper(t, team)
22+
defer cleanupproj()
23+
24+
dsnkey, err := client.CreateClientKey(org, project, "testing key")
1425
if err != nil {
1526
t.Fatal(err)
1627
}
17-
project, err := client.CreateProject(org, team, "Test python project issues", nil)
28+
29+
ravenClient, err := raven.New(dsnkey.DSN.Secret)
1830
if err != nil {
1931
t.Fatal(err)
2032
}
2133

34+
for i := 0; i <= 10; i++ {
35+
ravenClient.CaptureMessage(fmt.Sprintf("Testing message %d", i), nil, nil)
36+
}
37+
38+
t.Run("Get all issues with a query of resolved", func(t *testing.T) {
39+
query := "is:resolved"
40+
issues, _, err := client.GetIssues(org, project, nil, nil, &query)
41+
if err != nil {
42+
t.Error(err)
43+
}
44+
if len(issues) >= 1 {
45+
t.Error("Should have not had any issues marked as resolved")
46+
}
47+
})
48+
2249
t.Run("Get all issues for a project", func(t *testing.T) {
2350
issues, link, err := client.GetIssues(org, project, nil, nil, nil)
2451
if err != nil {
2552
t.Error(err)
2653
}
27-
if len(issues) < 0 {
28-
t.Error("No issues found for this project")
54+
if len(issues) <= 0 {
55+
t.Fatal("No issues found for this project")
2956
}
3057
if link.Previous.Results {
3158
t.Error("Should be no new results")

keys_test.go

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,19 @@ import (
66

77
func TestKeysResource(t *testing.T) {
88
t.Parallel()
9+
10+
client := newTestClient(t)
911
org, err := client.GetOrganization(getDefaultOrg())
12+
1013
if err != nil {
1114
t.Fatal(err)
1215
}
13-
team, err := client.CreateTeam(org, "test team for keys", nil)
14-
if err != nil {
15-
t.Fatal(err)
16-
}
17-
project, err := client.CreateProject(org, team, "Test python project keys", nil)
18-
if err != nil {
19-
t.Fatal(err)
20-
}
16+
17+
team, cleanup := createTeamHelper(t)
18+
defer cleanup()
19+
20+
project, cleanupproj := createProjectHelper(t, team)
21+
defer cleanupproj()
2122

2223
t.Run("Create a new key for project", func(t *testing.T) {
2324
key, err := client.CreateClientKey(org, project, "Test client key")
@@ -56,8 +57,4 @@ func TestKeysResource(t *testing.T) {
5657
})
5758
})
5859

59-
if err := client.DeleteTeam(org, team); err != nil {
60-
t.Error(err)
61-
}
62-
6360
}

makefile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ devenv:
1313
docker run -d --name sentry-redis redis
1414
docker run -d --name sentry-postgres -e POSTGRES_PASSWORD=secret -e POSTGRES_USER=sentry postgres
1515
sleep 5 # Wait for postgres to bootup
16-
docker run -it --rm -e SENTRY_SECRET_KEY='${STUPIDSECRET}' --link sentry-postgres:postgres --link sentry-redis:redis sentry upgrade
17-
docker run -d --name my-sentry -e SENTRY_SECRET_KEY='${STUPIDSECRET}' --link sentry-redis:redis --link sentry-postgres:postgres -p 8080:9000 sentry
18-
docker run -d --name sentry-cron -e SENTRY_SECRET_KEY='${STUPIDSECRET}' --link sentry-postgres:postgres --link sentry-redis:redis sentry run cron
19-
docker run -d --name sentry-worker-1 -e SENTRY_SECRET_KEY='${STUPIDSECRET}' --link sentry-postgres:postgres --link sentry-redis:redis sentry run worker
16+
docker run -it --rm -e SENTRY_SECRET_KEY='${STUPIDSECRET}' --link sentry-postgres:postgres --link sentry-redis:redis sentry:latest upgrade
17+
docker run -d --name my-sentry -e SENTRY_SECRET_KEY='${STUPIDSECRET}' --link sentry-redis:redis --link sentry-postgres:postgres -p 8080:9000 sentry:latest
18+
docker run -d --name sentry-cron -e SENTRY_SECRET_KEY='${STUPIDSECRET}' --link sentry-postgres:postgres --link sentry-redis:redis sentry:latest run cron
19+
docker run -d --name sentry-worker-1 -e SENTRY_SECRET_KEY='${STUPIDSECRET}' --link sentry-postgres:postgres --link sentry-redis:redis sentry:latest run worker
2020

2121
devclean:
2222
docker kill $$(docker ps -q)

0 commit comments

Comments
 (0)