unistore: refactor get to return a reader (#107951)

This commit is contained in:
Georges Chaudy
2025-07-11 11:10:19 +02:00
committed by GitHub
parent a314b99589
commit ea0ddb3fc9
7 changed files with 48 additions and 65 deletions
+18 -21
View File
@@ -85,17 +85,16 @@ func runTestKVGet(t *testing.T, kv resource.KV, nsPrefix string) {
require.NoError(t, err)
// Now get it
obj, err := kv.Get(ctx, section, "existing-key")
reader, err := kv.Get(ctx, section, "existing-key")
require.NoError(t, err)
assert.Equal(t, "existing-key", obj.Key)
// Read the value
value, err := io.ReadAll(obj.Value)
value, err := io.ReadAll(reader)
require.NoError(t, err)
assert.Equal(t, testValue, string(value))
// Close the value reader
err = obj.Value.Close()
err = reader.Close()
require.NoError(t, err)
})
@@ -122,14 +121,13 @@ func runTestKVSave(t *testing.T, kv resource.KV, nsPrefix string) {
require.NoError(t, err)
// Verify it was saved
obj, err := kv.Get(ctx, section, "new-key")
reader, err := kv.Get(ctx, section, "new-key")
require.NoError(t, err)
assert.Equal(t, "new-key", obj.Key)
value, err := io.ReadAll(obj.Value)
value, err := io.ReadAll(reader)
require.NoError(t, err)
assert.Equal(t, testValue, string(value))
err = obj.Value.Close()
err = reader.Close()
require.NoError(t, err)
})
@@ -144,13 +142,13 @@ func runTestKVSave(t *testing.T, kv resource.KV, nsPrefix string) {
require.NoError(t, err)
// Verify it was updated
obj, err := kv.Get(ctx, section, "overwrite-key")
reader, err := kv.Get(ctx, section, "overwrite-key")
require.NoError(t, err)
value, err := io.ReadAll(obj.Value)
value, err := io.ReadAll(reader)
require.NoError(t, err)
assert.Equal(t, newValue, string(value))
err = obj.Value.Close()
err = reader.Close()
require.NoError(t, err)
})
@@ -166,13 +164,13 @@ func runTestKVSave(t *testing.T, kv resource.KV, nsPrefix string) {
require.NoError(t, err)
// Verify binary data
obj, err := kv.Get(ctx, section, "binary-key")
reader, err := kv.Get(ctx, section, "binary-key")
require.NoError(t, err)
value, err := io.ReadAll(obj.Value)
value, err := io.ReadAll(reader)
require.NoError(t, err)
assert.Equal(t, binaryData, value)
err = obj.Value.Close()
err = reader.Close()
require.NoError(t, err)
})
@@ -182,15 +180,14 @@ func runTestKVSave(t *testing.T, kv resource.KV, nsPrefix string) {
require.NoError(t, err)
// Verify it was saved with empty data
obj, err := kv.Get(ctx, section, "empty-key")
reader, err := kv.Get(ctx, section, "empty-key")
require.NoError(t, err)
assert.Equal(t, "empty-key", obj.Key)
value, err := io.ReadAll(obj.Value)
value, err := io.ReadAll(reader)
require.NoError(t, err)
assert.Equal(t, "", string(value))
assert.Len(t, value, 0)
err = obj.Value.Close()
err = reader.Close()
require.NoError(t, err)
})
}
@@ -416,14 +413,14 @@ func runTestKVConcurrent(t *testing.T, kv resource.KV, nsPrefix string) {
}
// Get immediately
obj, err := kv.Get(ctx, section, key)
reader, err := kv.Get(ctx, section, key)
if err != nil {
return
}
readValue, err := io.ReadAll(obj.Value)
readValue, err := io.ReadAll(reader)
require.NoError(t, err)
err = obj.Value.Close()
err = reader.Close()
require.NoError(t, err)
assert.Equal(t, value, string(readValue))
}