@@ -304,11 +304,13 @@ abstract class SolutionLoaderBase(protected val project: Project) : Disposable {
304304 // storeOriginalTemplateFiles uses task.taskFiles which may have stale disk content.
305305 frameworkLessonManager.ensureTemplateFilesCached(task)
306306
307- val solutionMap = taskSolutions.visibleSolutions()
307+ val solutionMap = taskSolutions.visibleSolutions(task )
308308 frameworkLessonManager.saveExternalChanges(task, solutionMap, taskSolutions.submissionId)
309309
310310 var taskFilesChanged = false
311311 for ((path, solution) in taskSolutions.solutions) {
312+ if (task.isSubmissionTestFile(path)) continue
313+
312314 val taskFile = task.getTaskFile(path)
313315 if (taskFile == null ) {
314316 if (! solution.isVisible) continue
@@ -333,6 +335,8 @@ abstract class SolutionLoaderBase(protected val project: Project) : Disposable {
333335 private fun applySolutionToCurrentTask (project : Project , task : Task , taskSolutions : TaskSolutions ) {
334336 val taskDir = task.getDir(project.courseDir) ? : error(" Directory for task `${task.name} ` not found" )
335337 for ((path, solution) in taskSolutions.solutions) {
338+ if (task.isSubmissionTestFile(path)) continue
339+
336340 val taskFile = task.getTaskFile(path)
337341
338342 if (taskFile == null ) {
@@ -368,15 +372,18 @@ abstract class SolutionLoaderBase(protected val project: Project) : Disposable {
368372 val lesson = task.lesson
369373 if (lesson is FrameworkLesson ) {
370374 val frameworkLessonManager = FrameworkLessonManager .getInstance(project)
371- val solutionMap = taskSolutions.visibleSolutions()
375+ val solutionMap = taskSolutions.visibleSolutions(task )
372376 frameworkLessonManager.saveExternalChanges(task, solutionMap, taskSolutions.submissionId)
373377 }
374378 }
375379
376- private fun TaskSolutions.visibleSolutions (): Map <String , String > =
380+ private fun TaskSolutions.visibleSolutions (task : Task ): Map <String , String > =
377381 solutions
378- .filter { (_ , solution) -> solution.isVisible }
382+ .filter { (path , solution) -> solution.isVisible && ! task.isSubmissionTestFile(path) }
379383 .mapValues { (_, solution) -> solution.text }
384+
385+ private fun Task.isSubmissionTestFile (path : String ): Boolean =
386+ getTaskFile(path)?.isTestFile ? : EduUtilsKt .isTestsFile(this , path)
380387 }
381388
382389 protected data class Solution (val text : String , val isVisible : Boolean )
0 commit comments