Skip to content

Commit 09ace2d

Browse files
committed
refactor, Move code for retrieving a test template from Symflower into a helper
1 parent 12b82ce commit 09ace2d

File tree

1 file changed

+17
-14
lines changed

1 file changed

+17
-14
lines changed

evaluate/task/write-test.go

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -120,28 +120,17 @@ func (t *WriteTests) Run(ctx evaltask.Context) (repositoryAssessment map[string]
120120
ctx.Logger.Panicf("ERROR: unable to reset temporary repository path: %s", err)
121121
}
122122

123-
_, err = symflowerTemplate(taskLogger.Logger, dataPath, ctx.Language, filePath) // TODO Incorporate template processing time. https://github.com/symflower/eval-dev-quality/issues/350
123+
testTemplate, err := symflowerTemplateAsString(ctx, taskLogger, dataPath, filePath)
124124
if err != nil {
125-
problems = append(problems, pkgerrors.WithMessage(err, "generating Symflower template"))
125+
problems = append(problems, err)
126126

127127
withSymflowerTemplateAssessment.Add(modelAssessmentFile)
128128
withSymflowerTemplateAndFixAssessment.Add(withSymflowerFixAssessmentFile)
129129

130130
continue
131131
}
132132

133-
testTemplateFilePath := filepath.Join(dataPath, ctx.Language.TestFilePath(dataPath, filePath))
134-
testTemplate, err := os.ReadFile(testTemplateFilePath)
135-
if err != nil {
136-
problems = append(problems, pkgerrors.WithMessagef(err, "reading Symflower template from %q", testTemplateFilePath))
137-
138-
withSymflowerTemplateAssessment.Add(modelAssessmentFile)
139-
withSymflowerTemplateAndFixAssessment.Add(withSymflowerFixAssessmentFile)
140-
141-
continue
142-
}
143-
144-
arguments.Template = string(testTemplate)
133+
arguments.Template = testTemplate
145134
modelTemplateAssessmentFile, templateWithSymflowerFixAssessmentFile, ps, err := runModelAndSymflowerFix(ctx, modelContext, modelCapability.WriteTests)
146135
problems = append(problems, ps...)
147136
if err != nil {
@@ -155,6 +144,20 @@ func (t *WriteTests) Run(ctx evaltask.Context) (repositoryAssessment map[string]
155144
return repositoryAssessment, problems, nil
156145
}
157146

147+
func symflowerTemplateAsString(ctx evaltask.Context, taskLogger *taskLogger, dataPath string, filePath string) (testTemplate string, err error) {
148+
_, err = symflowerTemplate(taskLogger.Logger, dataPath, ctx.Language, filePath) // TODO Incorporate template processing time. https://github.com/symflower/eval-dev-quality/issues/350
149+
if err != nil {
150+
return "", pkgerrors.WithMessage(err, "generating Symflower template")
151+
}
152+
testTemplateFilePath := filepath.Join(dataPath, ctx.Language.TestFilePath(dataPath, filePath))
153+
testTemplateData, err := os.ReadFile(testTemplateFilePath)
154+
if err != nil {
155+
return "", pkgerrors.WithMessagef(err, "reading Symflower template from %q", testTemplateFilePath)
156+
}
157+
158+
return string(testTemplateData), nil
159+
}
160+
158161
// validateWriteTestsRepository checks if the repository for the "write-tests" task is well-formed.
159162
func validateWriteTestsRepository(logger *log.Logger, repositoryPath string, language language.Language) (err error) {
160163
logger.Info("validating repository", "path", repositoryPath)

0 commit comments

Comments
 (0)