Запуск тестовых примеров в Django, подобно тестовым случаям в leetcode, codesignal и codewar
Кто-нибудь знает, как мы можем запускать тестовые примеры на данных (функции), отправленных пользователем в Django, (как это реализовано в leetcode, codesignals и codewar)
Попробовать os.system(test_program)
Тестовая_программа может быть любым файлом, будь то C, C++ или Python.
Если вам не нужна поддержка тестирования, вы сможете легко запускать код, используя официальные образы контейнеров для языка и Docker CLI.
и есть инструмент , который был использован codewar и квалифицирован, и вы также можете посмотреть этот клон codewar тоже для лучшего понимания, я думаю, что это немного упрощенная и практическая реализация этого codewar CLI тоже,
И последнее, если вы работаете в python, вы также можете использовать eval, но проблема в том, что некоторые злоумышленники могут вставить неавторизованный скрипт, который может нанести вред, поэтому я думаю, что вы должны избегать его использования,
лично я думаю, что вам следует использовать простой вариант docker с небольшим количеством песочницы, потому что в нашем случае это в основном просто тонкая обертка вокруг Docker API, которая принимает представленный код, подготавливает окружение и выполняет его. Это настолько просто, что оригинальный PoC состоял из нескольких строк сценария оболочки и крошечного инструмента, написанного на Go.