public bool Preprocessing(SubmissionDto submissionDto, string directory, out EngineWorkingDirectories workingDirectories, out FeedbackDto feedback) { workingDirectories = new EngineWorkingDirectories(); if (!ValidateSubmission(submissionDto, out feedback)) { return(false); } var handler = Factory.FileHandler(); workingDirectories.ParentDirectory = directory; workingDirectories.ReferenceTestSuit = Path.Combine(directory, "ReferenceTestSuit"); workingDirectories.Solution = Path.Combine(directory, Path.GetFileNameWithoutExtension(submissionDto.SolutionFolderName)); workingDirectories.StudentTestSuit = Path.Combine(directory, "StudentTestSuit"); handler.UnzipByteArray(submissionDto.ReferenceTestSolution, directory, workingDirectories.ReferenceTestSuit); handler.UnzipByteArray(submissionDto.AssignmentSolution, directory, workingDirectories.Solution); handler.UnzipByteArray(submissionDto.TestCaseSolution, directory, workingDirectories.StudentTestSuit); var exitCode = Factory.Pytest().Run(workingDirectories.StudentTestSuit, "$null", workingDirectories.StudentTestSuit); if (exitCode != 0) { feedback.Message = "Student's solution didn't pass their own Test Suite"; return(false); } return(true); }
public bool Preprocessing(SubmissionDto submissionDto, string directory, out EngineWorkingDirectories workingDirectories, out FeedbackDto feedback) { workingDirectories = new EngineWorkingDirectories(); if (!ValidateSubmission(submissionDto, out feedback)) { return(false); } var handler = Factory.FileHandler(); workingDirectories.ParentDirectory = directory; workingDirectories.ReferenceTestSuit = Path.Combine(directory, "ReferenceTestSuit"); workingDirectories.Solution = Path.Combine(directory, submissionDto.SolutionFolderName); workingDirectories.StudentTestSuit = Path.Combine(directory, "StudentTestSuit"); handler.UnzipByteArray(submissionDto.ReferenceTestSolution, directory, workingDirectories.ReferenceTestSuit); handler.UnzipByteArray(submissionDto.ReferenceSolution, directory, workingDirectories.Solution); handler.UnzipByteArray(submissionDto.TestCaseSolution, directory, workingDirectories.StudentTestSuit); return(true); }