From c7cf7baa48e29d06e317286b258f9d41c01ffd16 Mon Sep 17 00:00:00 2001 From: jguer Date: Sun, 16 May 2021 22:41:33 +0200 Subject: [PATCH] chore(http): use client for news feed --- cmd.go | 2 +- pkg/news/news.go | 10 ++++++++-- pkg/news/news_test.go | 3 ++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/cmd.go b/cmd.go index 378702d8..30afdd41 100644 --- a/cmd.go +++ b/cmd.go @@ -243,7 +243,7 @@ func handlePrint(cmdArgs *settings.Arguments, dbExecutor db.Executor) error { case cmdArgs.ExistsArg("w", "news"): double := cmdArgs.ExistsDouble("w", "news") quiet := cmdArgs.ExistsArg("q", "quiet") - return news.PrintNewsFeed(dbExecutor.LastBuildTime(), config.SortMode, double, quiet) + return news.PrintNewsFeed(config.Runtime.HTTPClient, dbExecutor.LastBuildTime(), config.SortMode, double, quiet) case cmdArgs.ExistsDouble("c", "complete"): return completion.Show(dbExecutor, config.AURURL, config.Runtime.CompletionPath, config.CompletionInterval, true) case cmdArgs.ExistsArg("c", "complete"): diff --git a/pkg/news/news.go b/pkg/news/news.go index d20cb817..0a03b942 100644 --- a/pkg/news/news.go +++ b/pkg/news/news.go @@ -2,6 +2,7 @@ package news import ( "bytes" + "context" "encoding/xml" "fmt" "html" @@ -59,8 +60,13 @@ type rss struct { Channel channel `xml:"channel"` } -func PrintNewsFeed(cutOffDate time.Time, sortMode int, all, quiet bool) error { - resp, err := http.Get("https://archlinux.org/feeds/news") +func PrintNewsFeed(client *http.Client, cutOffDate time.Time, sortMode int, all, quiet bool) error { + req, err := http.NewRequestWithContext(context.Background(), "GET", "https://archlinux.org/feeds/news", nil) + if err != nil { + return err + } + + resp, err := client.Do(req) if err != nil { return err } diff --git a/pkg/news/news_test.go b/pkg/news/news_test.go index 9111a111..36fc4aaf 100644 --- a/pkg/news/news_test.go +++ b/pkg/news/news_test.go @@ -2,6 +2,7 @@ package news import ( "io/ioutil" + "net/http" "os" "testing" "time" @@ -110,7 +111,7 @@ func TestPrintNewsFeed(t *testing.T) { r, w, _ := os.Pipe() os.Stdout = w - err := PrintNewsFeed(tt.args.cutOffDate, tt.args.sortMode, tt.args.all, tt.args.quiet) + err := PrintNewsFeed(&http.Client{}, tt.args.cutOffDate, tt.args.sortMode, tt.args.all, tt.args.quiet) assert.NoError(t, err) w.Close()