@@ -7,15 +7,20 @@ import (
77 "encoding/json"
88 "fmt"
99 "io"
10+ "strconv"
1011
1112 "github.com/src-d/lookout"
12- fixtures "github.com/src-d/lookout-test-fixtures"
1313 "github.com/src-d/lookout/util/cmdtest"
1414 "github.com/src-d/lookout/util/grpchelper"
15- log "gopkg.in/src-d/go-log.v1"
15+
16+ "github.com/src-d/lookout-test-fixtures"
17+ "gopkg.in/src-d/go-git.v4/plumbing"
18+ "gopkg.in/src-d/go-log.v1"
1619 "gopkg.in/src-d/lookout-sdk.v0/pb"
1720)
1821
22+ const dummyConfigFile = "../../fixtures/dummy_config.yml"
23+
1924type IntegrationSuite struct {
2025 cmdtest.IntegrationSuite
2126 r io.Reader
@@ -76,6 +81,55 @@ func startMockAnalyzer(ctx context.Context, a mockAnalyzer) error {
7681 return nil
7782}
7883
84+ func castPullRequest (fixture * fixtures.Fixture ) (* jsonReviewEvent , error ) {
85+ pr := fixture .GetPR ()
86+
87+ baseRepoCloneUrl := pr .GetBase ().GetRepo ().GetCloneURL ()
88+ baseRepoInfo , err := pb .ParseRepositoryInfo (baseRepoCloneUrl )
89+ if err != nil {
90+ return nil , err
91+ }
92+
93+ headRepoCloneUrl := pr .GetHead ().GetRepo ().GetCloneURL ()
94+ headRepoInfo , err := pb .ParseRepositoryInfo (headRepoCloneUrl )
95+ if err != nil {
96+ return nil , err
97+ }
98+
99+ event := pb.ReviewEvent {}
100+
101+ event .Provider = "github"
102+ event .InternalID = strconv .FormatInt (pr .GetID (), 10 )
103+
104+ event .Number = uint32 (pr .GetNumber ())
105+ event .RepositoryID = uint32 (pr .GetHead ().GetRepo ().GetID ())
106+
107+ sourceRefName := fmt .Sprintf ("refs/heads/%s" , pr .GetHead ().GetRef ())
108+ event .Source = lookout.ReferencePointer {
109+ InternalRepositoryURL : headRepoInfo .CloneURL ,
110+ ReferenceName : plumbing .ReferenceName (sourceRefName ),
111+ Hash : pr .GetHead ().GetSHA (),
112+ }
113+
114+ baseRefName := fmt .Sprintf ("refs/heads/%s" , pr .GetBase ().GetRef ())
115+ event .Base = lookout.ReferencePointer {
116+ InternalRepositoryURL : baseRepoInfo .CloneURL ,
117+ ReferenceName : plumbing .ReferenceName (baseRefName ),
118+ Hash : pr .GetBase ().GetSHA (),
119+ }
120+
121+ headRefName := fmt .Sprintf ("refs/pull/%d/head" , pr .GetNumber ())
122+ event .Head = lookout.ReferencePointer {
123+ InternalRepositoryURL : baseRepoInfo .CloneURL ,
124+ ReferenceName : plumbing .ReferenceName (headRefName ),
125+ Hash : pr .GetHead ().GetSHA (),
126+ }
127+
128+ event .IsMergeable = pr .GetMergeable ()
129+
130+ return & jsonReviewEvent {ReviewEvent : & event }, nil
131+ }
132+
79133var longLineFixture = fixtures .GetByName ("new-go-file-too-long-line" )
80134
81135var successEvent = & jsonReviewEvent {
0 commit comments