На одном проекте на Django начал писать функциональные тесты на Ghost.py. Написав первый тест на регистрацию пользователя, потратил достаточно много времени (во всяком случае, больше, чем хотелось бы) в поисках причины почему не проходит аутентификация. Причём по логам и через дебагер аутентификация проходит успешно, но следующий запрос — редирект на страницу входа.
Причина оказалась тривиальной — не работали сессии. В SESSION_COOKIE_DOMAIN был указан не тот хост, т.к. для локальной разработки у меня подправлен файлик hosts и в нём прописан свой хост для нормальной интеграции с тестовым приложением facebook’а. Чтобы всё заработало было достаточно поменять эту опцию на такую штуку:
1 | SESSION_COOKIE_DOMAIN = '.localhost' |
Как вариант, можно было бы поправить тесты чтобы они не на localhost ломились. В будущем, наверное так и придётся сделать, но пока так.