Настраиваемые бэкэнды Authencation, за которыми не следуют собственные тестовые примеры Django. Зачем? - PullRequest
2 голосов
/ 28 января 2010

Я узнал, что, используя Настраиваемая философия бэкэндов Authencation , можно создать веб-сайт, который принимает адреса электронной почты в качестве имен пользователей. Но после создания соответствующей логики и проверки работоспособности моего кода, я обнаружил одну проблему с собственными тестовыми примерами Django. Они не следовали философии Customizable Authencation. Это означает, что тестовые случаи фактически имели жестко закодированные значения ('username': 'testclient') для тестирования процесса "входа в систему". Это почему? Джанго всегда не одобряет Tight Coupling. Но что здесь происходит?

Я ни в коем случае не бью Джанго! Я большой поклонник, и я буду, на долгие годы. Просто хочу узнать причину этого!

Обновление: как указал @dmishe, эти тестовые сценарии должны проверить собственную функциональность Django. Я понял это. Но как я могу позволить этим ошибкам «проваливающихся тестовых наборов» НЕ появляться, когда я запускаю свои тестовые наборы или запускаю весь набор тестов проекта?

Ответы [ 2 ]

1 голос
/ 29 января 2010

Как указывает dmishe, тесты contrib.auth не являются проблемой для проверки функциональности, встроенной в приложение contrib.auth. Проблема заключается в том, что эти тесты по умолчанию выполняются для пользовательских проектов, и их легко сломать с помощью обычной настройки параметров. Это проблема, о которой разработчики Django знают и работают над возможными решениями.

Тем временем мое решение состоит в том, чтобы определить простой bash-скрипт для тестирования только тех приложений, которые я хочу. Поэтому вместо «./manage.py test» я запускаю скрипт, который делает «./manage.py test app1 app2 app3 ...». Не идеально, но это далеко не самое худшее из моих проблем: -)

Обновление : Этот коммит может вас заинтересовать.

0 голосов
/ 29 января 2010

Я не вижу здесь проблемы, django.contrib.auth.tests должен проверить приложение аутентификации и больше ничего. Таким образом, он должен протестировать встроенный бэкэнд, представляющий собой комбинацию имени пользователя и пароля.

...