internal/modules: replace download test with writeZip test
Change-Id: I822279e99473a3760146dd66ee854c2dfe7d10a3
Reviewed-on: https://go-review.googlesource.com/c/pkgsite-metrics/+/477175
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Zvonimir Pavlinovic <zpavlinovic@google.com>
Reviewed-by: Jonathan Amsterdam <jba@google.com>
diff --git a/internal/modules/modules_test.go b/internal/modules/modules_test.go
index 2e9ccb7..b0ea71d 100644
--- a/internal/modules/modules_test.go
+++ b/internal/modules/modules_test.go
@@ -5,36 +5,60 @@
package modules
import (
- "context"
+ "archive/zip"
+ "bytes"
"os"
+ "path/filepath"
"testing"
-
- "golang.org/x/pkgsite-metrics/internal/proxy"
)
-func TestDownload(t *testing.T) {
- t.Skip()
-
- tempDir, err := os.MkdirTemp("", "testModuleDownload")
+func TestWriteZip(t *testing.T) {
+ // Create an in-memory zipped test module.
+ buf := new(bytes.Buffer)
+ w := zip.NewWriter(buf)
+ var files = []struct {
+ Name, Body string
+ }{
+ {filepath.Join("golang.org@v0.0.0", "README"), "This is a readme."},
+ {filepath.Join("golang.org@v0.0.0", "main"), "package main"},
+ }
+ for _, file := range files {
+ f, err := w.Create(file.Name)
+ if err != nil {
+ t.Fatal(err)
+ }
+ _, err = f.Write([]byte(file.Body))
+ if err != nil {
+ t.Fatal(err)
+ }
+ }
+ err := w.Close()
if err != nil {
t.Fatal(err)
}
+ // Create a zip.Reader for the module.
+ br := bytes.NewReader(buf.Bytes())
+ r, err := zip.NewReader(br, int64(len(buf.Bytes())))
+ if err != nil {
+ t.Fatal(err)
+ }
+
+ // Create space to unpack the module.
+ tempDir, err := os.MkdirTemp("", "testWriteZip")
+ if err != nil {
+ t.Fatal(err)
+ }
defer func() {
if err := os.RemoveAll(tempDir); err != nil {
t.Fatal(err)
}
}()
- proxyClient, err := proxy.New("https://proxy.golang.org")
- if err != nil {
- t.Fatal(err)
+ if err := writeZip(r, tempDir, ""); err != nil {
+ t.Error(err)
}
-
- // Use golang.org/x/net@v0.0.0-20221012135044-0b7e1fb9d458
- module := "golang.org/x/net"
- version := "v0.0.0-20221012135044-0b7e1fb9d458"
- if err := Download(context.Background(), module, version, tempDir, proxyClient, true); err != nil {
- t.Errorf("failed to download %v@%v: %v", module, version, err)
+ if err := writeZip(r, tempDir, "golang.org@v0.0.0"); err != nil {
+ t.Error(err)
}
}