KevinStephenson
Adding in weaviate code
b110593
raw
history blame
3.16 kB
// _ _
// __ _____ __ ___ ___ __ _| |_ ___
// \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \
// \ V V / __/ (_| |\ V /| | (_| | || __/
// \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___|
//
// Copyright © 2016 - 2024 Weaviate B.V. All rights reserved.
//
// CONTACT: [email protected]
//
package test
import (
"testing"
"github.com/davecgh/go-spew/spew"
"github.com/go-openapi/strfmt"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"github.com/weaviate/weaviate/client/objects"
"github.com/weaviate/weaviate/entities/models"
"github.com/weaviate/weaviate/test/helper"
)
func customVectors(t *testing.T) {
var id strfmt.UUID
t.Run("create object", func(t *testing.T) {
params := objects.NewObjectsCreateParams().WithBody(
&models.Object{
Class: "TestObjectCustomVector",
Properties: map[string]interface{}{"description": "foo"},
Vector: []float32{0.1, 0.2},
})
resp, err := helper.Client(t).Objects.ObjectsCreate(params, nil)
require.Nil(t, err, "creation should succeed")
id = resp.Payload.ID
})
t.Run("check custom vector is set", func(t *testing.T) {
include := "vector"
params := objects.NewObjectsGetParams().WithID(id).WithInclude(&include)
resp, err := helper.Client(t).Objects.ObjectsGet(params, nil)
require.Nil(t, err, "get should succeed")
assert.Equal(t, []float32{0.1, 0.2}, []float32(resp.Payload.Vector))
})
t.Run("replace object entirely (update)", func(t *testing.T) {
params := objects.NewObjectsUpdateParams().WithID(id).WithBody(&models.Object{
ID: id,
Class: "TestObjectCustomVector",
Properties: map[string]interface{}{"description": "foo updated"},
Vector: []float32{0.1, 0.3},
})
_, err := helper.Client(t).Objects.ObjectsUpdate(params, nil)
require.Nil(t, err, "update should succeed")
})
t.Run("check custom vector is updated", func(t *testing.T) {
include := "vector"
params := objects.NewObjectsGetParams().WithID(id).WithInclude(&include)
resp, err := helper.Client(t).Objects.ObjectsGet(params, nil)
require.Nil(t, err, "get should succeed")
assert.Equal(t, []float32{0.1, 0.3}, []float32(resp.Payload.Vector))
})
t.Run("replace only vector through merge", func(t *testing.T) {
params := objects.NewObjectsPatchParams().WithID(id).WithBody(&models.Object{
ID: id,
Class: "TestObjectCustomVector",
Properties: map[string]interface{}{},
Vector: []float32{0.4, 0.3},
})
_, err := helper.Client(t).Objects.ObjectsPatch(params, nil)
if err != nil {
spew.Dump(err.(*objects.ObjectsPatchInternalServerError).Payload.Error[0])
}
require.Nil(t, err, "patch should succeed")
})
t.Run("check custom vector is updated", func(t *testing.T) {
include := "vector"
params := objects.NewObjectsGetParams().WithID(id).WithInclude(&include)
resp, err := helper.Client(t).Objects.ObjectsGet(params, nil)
require.Nil(t, err, "get should succeed")
assert.Equal(t, []float32{0.4, 0.3}, []float32(resp.Payload.Vector))
})
}