Spaces:
Running
Running
File size: 1,984 Bytes
b110593 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
// _ _
// __ _____ __ ___ ___ __ _| |_ ___
// \ \ /\ / / _ \/ _` \ \ / / |/ _` | __/ _ \
// \ V V / __/ (_| |\ V /| | (_| | || __/
// \_/\_/ \___|\__,_| \_/ |_|\__,_|\__\___|
//
// Copyright © 2016 - 2024 Weaviate B.V. All rights reserved.
//
// CONTACT: [email protected]
//
package clients
import (
"net/http"
"net/http/httptest"
"testing"
"time"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestGetMeta(t *testing.T) {
t.Run("when the server is providing meta", func(t *testing.T) {
server := httptest.NewServer(&testMetaHandler{t: t})
defer server.Close()
c := New(server.URL, 0, nullLogger())
meta, err := c.MetaInfo()
assert.Nil(t, err)
assert.NotNil(t, meta)
metaModel := meta["name"]
require.NotNil(t, metaModel)
assert.Equal(t, "Bert", metaModel)
})
}
type testMetaHandler struct {
t *testing.T
// the test handler will report as not ready before the time has passed
readyTime time.Time
}
func (f *testMetaHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
assert.Equal(f.t, "/meta", r.URL.String())
assert.Equal(f.t, http.MethodGet, r.Method)
if time.Since(f.readyTime) < 0 {
w.WriteHeader(http.StatusServiceUnavailable)
}
w.Write([]byte(f.metaInfo()))
}
func (f *testMetaHandler) metaInfo() string {
return `{
"description": "<strong>Sbert</strong><br><ul><li>For embeddings",
"disableGUI": "true",
"filename": "ggml-all-MiniLM-L6-v2-f16.bin",
"filesize": "45521167",
"md5sum": "031bb5d5722c08d13e3e8eaf55c37391",
"name": "Bert",
"order": "t",
"parameters": "1 million",
"path": "/Users/marcin/.cache/gpt4all/ggml-all-MiniLM-L6-v2-f16.bin",
"promptTemplate": "### Human: \n{0}\n### Assistant:\n",
"quant": "f16",
"ramrequired": "1",
"requires": "2.4.14",
"systemPrompt": "",
"type": "Bert"
}`
}
|