MCPcopy
hub / github.com/baetyl/baetyl / TestObject_DownloadObject

Function TestObject_DownloadObject

sync/object_test.go:49–169  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

47}
48
49func TestObject_DownloadObject(t *testing.T) {
50 f, err := os.CreateTemp("", t.Name())
51 assert.NoError(t, err)
52 assert.NotNil(t, f)
53 fmt.Println("-->tempfile", f.Name())
54
55 sto, err := store.NewBoltHold(f.Name())
56 assert.NoError(t, err)
57 assert.NotNil(t, sto)
58
59 nod, err := node.NewNode(sto)
60 assert.NoError(t, err)
61 assert.NotNil(t, nod)
62
63 content := []byte("test")
64 dir := t.TempDir()
65 fmt.Println("-->tempdir", dir)
66 file1 := filepath.Join(dir, "file1")
67 os.WriteFile(file1, content, 0644)
68
69 var responses []*mock.Response
70 for i := 0; i < 34; i++ {
71 responses = append(responses, mock.NewResponse(200, content))
72 }
73 assert.NoError(t, err)
74 objMs := mock.NewServer(nil, responses...)
75 assert.NotNil(t, objMs)
76 defer objMs.Close()
77
78 cc := http.ClientConfig{}
79 err = utils.UnmarshalYAML(nil, &cc)
80 assert.NoError(t, err)
81 cc.Address = objMs.URL
82 cc.CA = "./testcert/ca.pem"
83 cc.Key = "./testcert/client.key"
84 cc.Cert = "./testcert/client.pem"
85 cc.InsecureSkipVerify = true
86
87 //syn, err := NewSync(sc, sto, nod)
88 ops, err := cc.ToClientOptions()
89 assert.NoError(t, err)
90 cli := http.NewClient(ops)
91
92 md5, _ := utils.CalculateFileMD5(file1)
93 obj := &specv1.ConfigurationObject{
94 URL: objMs.URL,
95 MD5: md5,
96 }
97 // already exist
98 err = downloadObject(cli, obj, dir, file1, "")
99 assert.NoError(t, err)
100
101 // normal download
102 file2 := filepath.Join(dir, "file2")
103 err = downloadObject(cli, obj, dir, file2, "")
104 assert.NoError(t, err)
105
106 // invalid url

Callers

nothing calls this directly

Calls 4

NewBoltHoldFunction · 0.92
NewNodeFunction · 0.92
downloadObjectFunction · 0.85
CloseMethod · 0.65

Tested by

no test coverage detected