В последние годы ИИ-помощники, такие как GitHub Copilot, стали популярными инструментами для ускорения разработки кода.
⠀
Однако, как показывает опыт разработчиков, использование таких инструментов может привести к появлению новых, труднообнаружимых ошибок в коде.
⠀
При работе над проектом с использованием Django столкнулись с неожиданными сбоями в тестах.
⠀
После продолжительного поиска причины выяснилось, что Copilot автоматически сгенерировал следующую строку импорта:
⠀
from django.test import TestCase as TransactionTestCase
⠀
На первый взгляд, этот импорт может показаться безобидным. Однако в Django классы TestCase и TransactionTestCase имеют разные поведения в отношении управления транзакциями:
⠀
TestCase: оборачивает каждый тест в транзакцию и откатывает её после завершения, обеспечивая изоляцию тестов.
TransactionTestCase: не управляет транзакциями автоматически, что полезно для тестов, зависящих от явного управления транзакциями.
Таким образом, импорт TestCase под именем TransactionTestCase привёл к тому, что тесты выполнялись с неверной семантикой транзакций, вызывая неожиданные сбои.
⠀
Всем отличного настроения🌞
⠀
#итб #битрикс24 #1сфранчайзи
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев