diff options
author | Andrew Suffield <asuffield@gmail.com> | 2021-03-26 16:03:49 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-26 17:03:49 +0100 |
commit | e5bbc4d10904554dbc8fd5afd06f66814f7b173e (patch) | |
tree | 6a1508b51ede537c75896ba6650a8f5fb0ad09f8 /plumbing/transport/http/upload_pack_test.go | |
parent | 1f328388192915476c68e5e0c8c1c818fd50fc6b (diff) | |
download | go-git-e5bbc4d10904554dbc8fd5afd06f66814f7b173e.tar.gz |
plumbing: wire up contexts for Transport.AdvertisedReferences (#246)
* plumbing: wire up contexts for Transport.AdvertisedReferences
* add more tests for context wiring
Diffstat (limited to 'plumbing/transport/http/upload_pack_test.go')
-rw-r--r-- | plumbing/transport/http/upload_pack_test.go | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/plumbing/transport/http/upload_pack_test.go b/plumbing/transport/http/upload_pack_test.go index 6fae443..f9710ab 100644 --- a/plumbing/transport/http/upload_pack_test.go +++ b/plumbing/transport/http/upload_pack_test.go @@ -1,8 +1,10 @@ package http import ( + "context" "fmt" "io/ioutil" + "net/url" "os" "path/filepath" @@ -103,3 +105,32 @@ func (s *UploadPackSuite) TestAdvertisedReferencesRedirectSchema(c *C) { url := session.(*upSession).endpoint.String() c.Assert(url, Equals, "https://github.com/git-fixtures/basic") } + +func (s *UploadPackSuite) TestAdvertisedReferencesContext(c *C) { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + endpoint, _ := transport.NewEndpoint("http://github.com/git-fixtures/basic") + + session, err := s.Client.NewUploadPackSession(endpoint, s.EmptyAuth) + c.Assert(err, IsNil) + + info, err := session.AdvertisedReferencesContext(ctx) + c.Assert(err, IsNil) + c.Assert(info, NotNil) + + url := session.(*upSession).endpoint.String() + c.Assert(url, Equals, "https://github.com/git-fixtures/basic") +} + +func (s *UploadPackSuite) TestAdvertisedReferencesContextCanceled(c *C) { + ctx, cancel := context.WithCancel(context.Background()) + cancel() + endpoint, _ := transport.NewEndpoint("http://github.com/git-fixtures/basic") + + session, err := s.Client.NewUploadPackSession(endpoint, s.EmptyAuth) + c.Assert(err, IsNil) + + info, err := session.AdvertisedReferencesContext(ctx) + c.Assert(err, DeepEquals, &url.Error{Op: "Get", URL: "http://github.com/git-fixtures/basic/info/refs?service=git-upload-pack", Err: context.Canceled}) + c.Assert(info, IsNil) +} |