MCPcopy Create free account
hub / github.com/chainloop-dev/chainloop / SetupTest

Method SetupTest

pkg/blobmanager/s3/backend_test.go:277–331  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

275const testBucket = "test-bucket"
276
277func (s *testSuite) SetupTest() {
278 s.minio = newMinioInstance(s.T())
279 location := fmt.Sprintf("http://%s/%s", s.minio.ConnectionString(s.T()), testBucket)
280
281 // Create backend
282 backend, err := NewBackend(&Credentials{
283 AccessKeyID: "root",
284 SecretAccessKey: "test-password",
285 Region: "us-east-1",
286 Location: location,
287 })
288 require.NoError(s.T(), err)
289 s.backend = backend
290
291 invalidBackend, err := NewBackend(&Credentials{
292 AccessKeyID: "root",
293 SecretAccessKey: "wrong-password",
294 Region: "us-east-1",
295 BucketName: testBucket,
296 Location: location,
297 })
298
299 require.NoError(s.T(), err)
300 s.invalidBackend = invalidBackend
301
302 // create bucket
303 minioClient, err := minio.New(s.minio.ConnectionString(s.T()), &minio.Options{
304 Creds: credentials.NewStaticV4("root", "test-password", ""), Secure: false,
305 })
306 require.NoError(s.T(), err)
307 require.NoError(s.T(), minioClient.MakeBucket(context.TODO(), testBucket, minio.MakeBucketOptions{}))
308
309 // upload a valid artifact
310 buf := bytes.NewBuffer([]byte("test"))
311 s.ownedObjectDigest = fmt.Sprintf("%x", sha256.Sum256(buf.Bytes()))
312 // calculate sha256 of the content in the buffer
313 err = s.backend.Upload(context.Background(), buf, &pb.CASResource{Digest: s.ownedObjectDigest, FileName: "test.txt"})
314 require.NoError(s.T(), err)
315
316 // Copy an existing object but reference it from somewhere else
317 s.tamperedObjectDigest = "b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c"
318 _, err = minioClient.CopyObject(context.Background(), minio.CopyDestOptions{
319 Bucket: testBucket, Object: fmt.Sprintf("sha256:%s", s.tamperedObjectDigest),
320 }, minio.CopySrcOptions{
321 Bucket: testBucket, Object: fmt.Sprintf("sha256:%s", s.ownedObjectDigest),
322 })
323 require.NoError(s.T(), err)
324
325 // upload another one but by the client directly
326 reader := bytes.NewReader([]byte("hello world"))
327 s.externalObjectDigest = "external-deadbeef"
328 _, err = minioClient.PutObject(context.Background(), testBucket, fmt.Sprintf("sha256:%s", s.externalObjectDigest), reader, reader.Size(),
329 minio.PutObjectOptions{})
330 require.NoError(s.T(), err)
331}
332
333func (s *testSuite) TearDownTest() {
334 if s.minio == nil {

Callers

nothing calls this directly

Calls 4

newMinioInstanceFunction · 0.85
NewBackendFunction · 0.70
UploadMethod · 0.65
ConnectionStringMethod · 0.45

Tested by

no test coverage detected