Skip to content

Commit 819c121

Browse files
committed
fix: add tests for fix
Signed-off-by: Fabian Burth <fabian.burth@sap.com>
1 parent 0d8fcaf commit 819c121

1 file changed

Lines changed: 97 additions & 3 deletions

File tree

api/ocm/tools/transfer/transferhandler/spiff/handler_test.go

Lines changed: 97 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,20 @@ import (
44
"encoding/json"
55
"fmt"
66

7+
"github.com/mandelsoft/goutils/testutils"
78
. "github.com/onsi/ginkgo/v2"
89
. "github.com/onsi/gomega"
910
. "ocm.software/ocm/api/helper/builder"
1011
. "ocm.software/ocm/api/oci/testhelper"
1112

12-
"github.com/mandelsoft/goutils/testutils"
13-
1413
"ocm.software/ocm/api/oci"
1514
"ocm.software/ocm/api/oci/artdesc"
1615
"ocm.software/ocm/api/oci/extensions/repositories/artifactset"
1716
metav1 "ocm.software/ocm/api/ocm/compdesc/meta/v1"
1817
"ocm.software/ocm/api/ocm/extensions/accessmethods/ociartifact"
1918
resourcetypes "ocm.software/ocm/api/ocm/extensions/artifacttypes"
2019
"ocm.software/ocm/api/ocm/extensions/repositories/ctf"
21-
ocmutils "ocm.software/ocm/api/ocm/ocmutils"
20+
"ocm.software/ocm/api/ocm/ocmutils"
2221
"ocm.software/ocm/api/ocm/tools/transfer"
2322
"ocm.software/ocm/api/ocm/tools/transfer/transferhandler/spiff"
2423
"ocm.software/ocm/api/ocm/tools/transfer/transferhandler/standard"
@@ -295,4 +294,99 @@ process: (( (*(rules[mode] || rules.default)).process ))
295294
Expect(err).To(Succeed())
296295
})
297296
})
297+
298+
Context("test omit access type option", func() {
299+
var env *Builder
300+
testOciAccess := ociartifact.New(oci.StandardOCIRef(OCIHOST+".alias", OCINAMESPACE2, OCIVERSION))
301+
302+
BeforeEach(func() {
303+
env = NewBuilder()
304+
305+
FakeOCIRepo(env, OCIPATH, OCIHOST)
306+
307+
env.OCICommonTransport(OCIPATH, accessio.FormatDirectory, func() {
308+
OCIManifest2(env)
309+
})
310+
311+
env.OCMCommonTransport(ARCH, accessio.FormatDirectory, func() {
312+
env.Component(COMPONENT, func() {
313+
env.Version(VERSION, func() {
314+
env.Provider(PROVIDER)
315+
env.Resource("ref", "", resourcetypes.OCI_IMAGE, metav1.LocalRelation, func() {
316+
env.Access(
317+
testOciAccess,
318+
)
319+
})
320+
})
321+
})
322+
})
323+
324+
env.OCMCommonTransport(ARCH2, accessio.FormatDirectory, func() {
325+
env.Component(COMPONENT2, func() {
326+
env.Version(VERSION, func() {
327+
env.Reference("ref", COMPONENT, VERSION)
328+
env.Provider(PROVIDER)
329+
})
330+
})
331+
})
332+
})
333+
334+
AfterEach(func() {
335+
env.Cleanup()
336+
})
337+
338+
It("should omit oci access", func() {
339+
src, err := ctf.Open(env.OCMContext(), accessobj.ACC_READONLY, ARCH, 0, env)
340+
Expect(err).To(Succeed())
341+
cv, err := src.LookupComponentVersion(COMPONENT, VERSION)
342+
Expect(err).To(Succeed())
343+
tgt, err := ctf.Create(env.OCMContext(), accessobj.ACC_WRITABLE|accessobj.ACC_CREATE, OUT, 0o700, accessio.FormatDirectory, env)
344+
Expect(err).To(Succeed())
345+
defer tgt.Close()
346+
347+
handler, err := spiff.New(standard.ResourcesByValue(), standard.AddOmittedAccessTypes(ociartifact.Type))
348+
Expect(err).To(Succeed())
349+
err = transfer.TransferVersion(nil, nil, cv, tgt, handler)
350+
Expect(err).To(Succeed())
351+
Expect(env.DirExists(OUT)).To(BeTrue())
352+
353+
list, err := tgt.ComponentLister().GetComponents("", true)
354+
Expect(err).To(Succeed())
355+
Expect(list).To(Equal([]string{COMPONENT}))
356+
comp, err := tgt.LookupComponentVersion(COMPONENT, VERSION)
357+
Expect(err).To(Succeed())
358+
Expect(len(comp.GetDescriptor().Resources)).To(Equal(1))
359+
360+
acc := comp.GetDescriptor().Resources[0].Access
361+
Expect(acc).To(testutils.YAMLEqual(testOciAccess))
362+
})
363+
364+
It("should not omit oci access", func() {
365+
src, err := ctf.Open(env.OCMContext(), accessobj.ACC_READONLY, ARCH, 0, env)
366+
Expect(err).To(Succeed())
367+
cv, err := src.LookupComponentVersion(COMPONENT, VERSION)
368+
Expect(err).To(Succeed())
369+
tgt, err := ctf.Create(env.OCMContext(), accessobj.ACC_WRITABLE|accessobj.ACC_CREATE, OUT, 0o700, accessio.FormatDirectory, env)
370+
Expect(err).To(Succeed())
371+
defer tgt.Close()
372+
373+
handler, err := spiff.New(standard.ResourcesByValue())
374+
Expect(err).To(Succeed())
375+
err = transfer.TransferVersion(nil, nil, cv, tgt, handler)
376+
Expect(err).To(Succeed())
377+
Expect(env.DirExists(OUT)).To(BeTrue())
378+
379+
list, err := tgt.ComponentLister().GetComponents("", true)
380+
Expect(err).To(Succeed())
381+
Expect(list).To(Equal([]string{COMPONENT}))
382+
comp, err := tgt.LookupComponentVersion(COMPONENT, VERSION)
383+
Expect(err).To(Succeed())
384+
Expect(len(comp.GetDescriptor().Resources)).To(Equal(1))
385+
386+
data, err := json.Marshal(comp.GetDescriptor().Resources[0].Access)
387+
Expect(err).To(Succeed())
388+
hash := HashManifest2(artifactset.DefaultArtifactSetDescriptorFileName)
389+
Expect(string(data)).To(testutils.StringEqualWithContext("{\"localReference\":\"" + hash + "\",\"mediaType\":\"application/vnd.oci.image.manifest.v1+tar+gzip\",\"referenceName\":\"" + OCINAMESPACE2 + ":" + OCIVERSION + "\",\"type\":\"localBlob\"}"))
390+
})
391+
})
298392
})

0 commit comments

Comments
 (0)