(t *testing.T)
| 21 | ) |
| 22 | |
| 23 | func TestGetMeta(t *testing.T) { |
| 24 | t.Run("when common server is providing meta", func(t *testing.T) { |
| 25 | server := httptest.NewServer(&testMetaHandler{t: t}) |
| 26 | defer server.Close() |
| 27 | v := New(server.URL, server.URL, 0, nullLogger()) |
| 28 | meta, err := v.MetaInfo() |
| 29 | |
| 30 | assert.Nil(t, err) |
| 31 | assert.NotNil(t, meta) |
| 32 | |
| 33 | model := extractChildMap(t, meta, "model") |
| 34 | assert.NotNil(t, model["_name_or_path"]) |
| 35 | assert.NotNil(t, model["architectures"]) |
| 36 | assert.Contains(t, model["architectures"], "DistilBertModel") |
| 37 | ID2Label := extractChildMap(t, model, "id2label") |
| 38 | assert.NotNil(t, ID2Label["0"]) |
| 39 | assert.NotNil(t, ID2Label["1"]) |
| 40 | }) |
| 41 | |
| 42 | t.Run("when passage and query servers are providing meta", func(t *testing.T) { |
| 43 | serverPassage := httptest.NewServer(&testMetaHandler{t: t, modelType: "passage"}) |
| 44 | serverQuery := httptest.NewServer(&testMetaHandler{t: t, modelType: "query"}) |
| 45 | defer serverPassage.Close() |
| 46 | defer serverQuery.Close() |
| 47 | v := New(serverPassage.URL, serverQuery.URL, 0, nullLogger()) |
| 48 | meta, err := v.MetaInfo() |
| 49 | |
| 50 | assert.Nil(t, err) |
| 51 | assert.NotNil(t, meta) |
| 52 | |
| 53 | passage := extractChildMap(t, meta, "passage") |
| 54 | passageModel := extractChildMap(t, passage, "model") |
| 55 | assert.NotNil(t, passageModel["_name_or_path"]) |
| 56 | assert.NotNil(t, passageModel["architectures"]) |
| 57 | assert.Contains(t, passageModel["architectures"], "DPRContextEncoder") |
| 58 | passageID2Label := extractChildMap(t, passageModel, "id2label") |
| 59 | assert.NotNil(t, passageID2Label["0"]) |
| 60 | assert.NotNil(t, passageID2Label["1"]) |
| 61 | |
| 62 | query := extractChildMap(t, meta, "query") |
| 63 | queryModel := extractChildMap(t, query, "model") |
| 64 | assert.NotNil(t, queryModel["_name_or_path"]) |
| 65 | assert.NotNil(t, queryModel["architectures"]) |
| 66 | assert.Contains(t, queryModel["architectures"], "DPRQuestionEncoder") |
| 67 | queryID2Label := extractChildMap(t, queryModel, "id2label") |
| 68 | assert.NotNil(t, queryID2Label["0"]) |
| 69 | assert.NotNil(t, queryID2Label["1"]) |
| 70 | }) |
| 71 | |
| 72 | t.Run("when passage and query servers are unavailable", func(t *testing.T) { |
| 73 | rt := time.Now().Add(time.Hour) |
| 74 | serverPassage := httptest.NewServer(&testMetaHandler{t: t, modelType: "passage", readyTime: rt}) |
| 75 | serverQuery := httptest.NewServer(&testMetaHandler{t: t, modelType: "query", readyTime: rt}) |
| 76 | defer serverPassage.Close() |
| 77 | defer serverQuery.Close() |
| 78 | v := New(serverPassage.URL, serverQuery.URL, 0, nullLogger()) |
| 79 | meta, err := v.MetaInfo() |
| 80 |
nothing calls this directly
no test coverage detected
searching dependent graphs…