MCPcopy Index your code
hub / github.com/docker/docker-agent / TestGetTools_WarningHandling

Function TestGetTools_WarningHandling

pkg/runtime/runtime_test.go:867–922  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

865}
866
867func TestGetTools_WarningHandling(t *testing.T) {
868 t.Parallel()
869
870 tests := []struct {
871 name string
872 toolsets []tools.ToolSet
873 wantToolCount int
874 wantWarning bool
875 }{
876 {
877 name: "partial success warns once",
878 toolsets: []tools.ToolSet{newStubToolSet(nil, []tools.Tool{{Name: "good", Parameters: map[string]any{}}}, nil), newStubToolSet(errors.New("boom"), nil, nil)},
879 wantToolCount: 1,
880 wantWarning: true,
881 },
882 {
883 name: "all fail on start warns once",
884 toolsets: []tools.ToolSet{newStubToolSet(errors.New("s1"), nil, nil), newStubToolSet(errors.New("s2"), nil, nil)},
885 wantToolCount: 0,
886 wantWarning: true,
887 },
888 {
889 name: "list failure warns once",
890 toolsets: []tools.ToolSet{newStubToolSet(nil, nil, errors.New("boom"))},
891 wantToolCount: 0,
892 wantWarning: true,
893 },
894 {
895 name: "no toolsets no warning",
896 toolsets: nil,
897 wantToolCount: 0,
898 wantWarning: false,
899 },
900 }
901
902 for _, tt := range tests {
903 t.Run(tt.name, func(t *testing.T) {
904 root := agent.New("root", "test", agent.WithToolSets(tt.toolsets...), agent.WithModel(&mockProvider{}))
905 tm := team.New(team.WithAgents(root))
906 rt, err := NewLocalRuntime(t.Context(), tm, WithModelStore(mockModelStore{}))
907 require.NoError(t, err)
908
909 events := make(chan Event, 10)
910 sessionSpan := trace.SpanFromContext(t.Context())
911
912 // First call
913 tools1, err := rt.getTools(t.Context(), root, sessionSpan, NewChannelSink(events), true)
914 require.NoError(t, err)
915 require.Len(t, tools1, tt.wantToolCount)
916
917 rt.emitAgentWarnings(root, NewChannelSink(events))
918 evs := collectEvents(events)
919 require.Equal(t, tt.wantWarning, hasWarningEvent(evs), "warning event mismatch on first call")
920 })
921 }
922}
923
924func TestNewRuntime_NoAgentsError(t *testing.T) {

Callers

nothing calls this directly

Calls 15

getToolsMethod · 0.95
emitAgentWarningsMethod · 0.95
NewFunction · 0.92
NewFunction · 0.92
WithAgentsFunction · 0.92
NewLocalRuntimeFunction · 0.85
WithModelStoreFunction · 0.85
NewChannelSinkFunction · 0.85
collectEventsFunction · 0.85
hasWarningEventFunction · 0.85
ContextMethod · 0.80
newStubToolSetFunction · 0.70

Tested by

no test coverage detected