Unistore: save should use a Reader not ReadCloser (#107128)

* save should use a Reader not ReadCloser

* save should use a Reader not ReadCloser
This commit is contained in:
Georges Chaudy
2025-06-24 15:37:22 +00:00
committed by GitHub
parent 8d9dec6979
commit 53cb80e58c
2 changed files with 10 additions and 8 deletions
+4 -2
View File
@@ -42,7 +42,7 @@ type KV interface {
Get(ctx context.Context, section string, key string) (KVObject, error)
// Save a new value
Save(ctx context.Context, section string, key string, value io.ReadCloser) error
Save(ctx context.Context, section string, key string, value io.Reader) error
// Delete a value
Delete(ctx context.Context, section string, key string) error
@@ -52,6 +52,8 @@ type KV interface {
UnixTimestamp(ctx context.Context) (int64, error)
}
var _ KV = &badgerKV{}
// Reference implementation of the KV interface using BadgerDB
// This is only used for testing purposes, and will not work HA
type badgerKV struct {
@@ -97,7 +99,7 @@ func (k *badgerKV) Get(ctx context.Context, section string, key string) (KVObjec
return out, nil
}
func (k *badgerKV) Save(ctx context.Context, section string, key string, value io.ReadCloser) error {
func (k *badgerKV) Save(ctx context.Context, section string, key string, value io.Reader) error {
if section == "" {
return fmt.Errorf("section is required")
}
+6 -6
View File
@@ -62,7 +62,7 @@ func TestBadgerKV_Save(t *testing.T) {
ctx := context.Background()
t.Run("Save new key", func(t *testing.T) {
err := kv.Save(ctx, "section", "key1", io.NopCloser(bytes.NewReader([]byte("value1"))))
err := kv.Save(ctx, "section", "key1", bytes.NewReader([]byte("value1")))
require.NoError(t, err)
// Verify the value was saved
@@ -77,11 +77,11 @@ func TestBadgerKV_Save(t *testing.T) {
t.Run("Save overwrite existing key", func(t *testing.T) {
// First save
err := kv.Save(ctx, "section", "key1", io.NopCloser(bytes.NewReader([]byte("oldvalue"))))
err := kv.Save(ctx, "section", "key1", bytes.NewReader([]byte("oldvalue")))
require.NoError(t, err)
// Overwrite
err = kv.Save(ctx, "section", "key1", io.NopCloser(bytes.NewReader([]byte("newvalue"))))
err = kv.Save(ctx, "section", "key1", bytes.NewReader([]byte("newvalue")))
require.NoError(t, err)
// Verify the value was updated
@@ -103,7 +103,7 @@ func TestBadgerKV_Delete(t *testing.T) {
t.Run("Delete existing key", func(t *testing.T) {
// First create a key
err := kv.Save(ctx, "section", "key1", io.NopCloser(bytes.NewReader([]byte("value1"))))
err := kv.Save(ctx, "section", "key1", bytes.NewReader([]byte("value1")))
require.NoError(t, err)
// Delete it
@@ -136,7 +136,7 @@ func setupIteratorTestData(t *testing.T) (*badgerKV, context.Context) {
// Setup test data
keys := []string{"a1", "a2", "b1", "b2", "c1"}
for _, k := range keys {
err := kv.Save(ctx, "section", k, io.NopCloser(bytes.NewReader([]byte("value"+k))))
err := kv.Save(ctx, "section", k, bytes.NewReader([]byte("value"+k)))
require.NoError(t, err)
}
@@ -221,7 +221,7 @@ func TestBadgerKV_Concurrent(t *testing.T) {
value := []byte(fmt.Sprintf("value%d", i))
// Save
err := kv.Save(ctx, "section", key, io.NopCloser(bytes.NewReader(value)))
err := kv.Save(ctx, "section", key, bytes.NewReader(value))
require.NoError(t, err)
// Get