1
0
Fork 0
mirror of https://github.com/imjasonh/terraform-playground synced 2026-07-08 07:44:57 +00:00
terraform-playground/pymage/internal/cache/cache_test.go
Cursor Agent 5830434434
build/cli: layer cache + parallel wheel layers, secret deny-list, env validation, docs
- add internal/cache content-addressed layer store; build per-wheel layers in
  parallel and reuse cached compressed blobs across rebuilds (--cache-dir)
- thread platform/python target into wheel resolution; validate --env
- add common secret patterns to the default source ignore list
- README: copy/paste-safe usage example + new flags; DESIGN status updated

Co-authored-by: Jason Hall <imjasonh@users.noreply.github.com>
2026-06-10 14:07:25 +00:00

43 lines
805 B
Go

package cache
import (
"testing"
"github.com/imjasonh/terraform-playground/pymage/internal/ptar"
)
func TestPutGetRoundTrip(t *testing.T) {
c, err := New(t.TempDir())
if err != nil {
t.Fatal(err)
}
layer, err := ptar.Layer([]ptar.File{{Path: "site/foo.py", Data: []byte("X=1\n")}})
if err != nil {
t.Fatal(err)
}
want, err := layer.Digest()
if err != nil {
t.Fatal(err)
}
const key = "wheel|1|abc|/app/.venv|python3.12"
if _, ok := c.Get(key); ok {
t.Fatal("expected a miss before Put")
}
if err := c.Put(key, layer); err != nil {
t.Fatal(err)
}
cached, ok := c.Get(key)
if !ok {
t.Fatal("expected a hit after Put")
}
got, err := cached.Digest()
if err != nil {
t.Fatal(err)
}
if got != want {
t.Fatalf("cached layer digest %s != original %s", got, want)
}
}