MCPcopy
hub / github.com/determined-ai/determined / TestTrialLogs

Function TestTrialLogs

master/internal/api_trials_intg_test.go:976–1068  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

974}
975
976func TestTrialLogs(t *testing.T) {
977 api, curUser, ctx := setupAPITest(t, nil)
978 trial, task0 := createTestTrial(t, api, curUser)
979
980 task1 := &model.Task{
981 TaskType: model.TaskTypeTrial,
982 LogVersion: model.TaskLogVersion1,
983 StartTime: task0.StartTime.Add(time.Second),
984 TaskID: trialTaskID(trial.ExperimentID, model.NewRequestID(rand.Reader)),
985 }
986 require.NoError(t, db.AddTask(ctx, task1))
987
988 task2 := &model.Task{
989 TaskType: model.TaskTypeTrial,
990 LogVersion: model.TaskLogVersion1,
991 StartTime: task1.StartTime.Add(time.Second),
992 TaskID: trialTaskID(trial.ExperimentID, model.NewRequestID(rand.Reader)),
993 }
994 require.NoError(t, db.AddTask(ctx, task2))
995
996 _, err := db.Bun().NewInsert().Model(&[]model.RunTaskID{
997 {RunID: trial.ID, TaskID: task1.TaskID},
998 {RunID: trial.ID, TaskID: task2.TaskID},
999 }).Exec(ctx)
1000 require.NoError(t, err)
1001
1002 var expected []string
1003 tasks := []model.TaskID{task0.TaskID, task1.TaskID, task2.TaskID}
1004 var taskLogs []*model.TaskLog
1005 for i, taskID := range tasks {
1006 for j := 0; j < 9; j++ {
1007 log := fmt.Sprintf("%d-%d\n", i, j)
1008 taskLogs = append(taskLogs, &model.TaskLog{TaskID: string(taskID), Log: log})
1009 expected = append(expected, log)
1010 }
1011 }
1012 require.NoError(t, api.m.db.AddTaskLogs(taskLogs))
1013
1014 stream := &mockStream[*apiv1.TrialLogsResponse]{ctx: ctx}
1015
1016 err = api.TrialLogs(&apiv1.TrialLogsRequest{
1017 TrialId: int32(trial.ID),
1018 }, stream)
1019 require.NoError(t, err)
1020
1021 require.Len(t, stream.data, len(expected))
1022 for i, expected := range expected {
1023 require.Equal(t, expected, *stream.data[i].Log)
1024 }
1025
1026 // Retry with follow.
1027 newStream := &mockStream[*apiv1.TrialLogsResponse]{ctx: ctx}
1028 done := make(chan error, 1)
1029 go func() {
1030 done <- api.TrialLogs(&apiv1.TrialLogsRequest{
1031 TrialId: int32(trial.ID),
1032 Follow: true,
1033 }, newStream)

Callers

nothing calls this directly

Calls 15

NewRequestIDFunction · 0.92
AddTaskFunction · 0.92
BunFunction · 0.92
setupAPITestFunction · 0.85
createTestTrialFunction · 0.85
trialTaskIDFunction · 0.85
makeFunction · 0.85
ExecMethod · 0.80
ModelMethod · 0.80
FatalMethod · 0.80
getDataMethod · 0.80
AddTaskLogsMethod · 0.65

Tested by

no test coverage detected