Тестирование Django 1.0: как сохранить сеанс между тестовым кодом и тестируемым представлением? - PullRequest
2 голосов
/ 04 октября 2009

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

Метод испытания:

def test_user_with_unused_tests(self):
    "User is given a test and sent to test start"
    # todo: insure that the user is given a test that he hasn't done

    #login
    login = self.client.login(username='xxx', password='xxx')
    self.failUnless(login)

    # build the screener
    user = User(username='xxx', password='xxx')
    user_screener = UserScreener(user=user)

    # put the screener in session
    self.client.session['user_screener'] = user_screener

проверенный вид:

@login_required
def screener_start(request):

    import code
    code.interact(local=locals())

Но, очевидно, сеанс не сохраняется между моим методом тестирования и вызовом представления:

Свидетельство несуществования:

>>> request.session.values()
[1, 'django.contrib.auth.backends.ModelBackend']

Есть ли способ исправить это? Я что-то упустил?

Я использую Django 1.0.

Заранее спасибо за ваши мысли.

1 Ответ

0 голосов
/ 28 декабря 2011

Похоже, вам нужен метод setUp, пожалуйста, найдите http://docs.python.org/library/unittest.html для документации setUp и tearDown метода. SetUp будет запущен для всех тестов, код для каждого отдельного теста будет уничтожен в конце каждого запуска теста.

В сущности, вам необходимо поместить свою логику входа в систему в setUp и фактическую логику теста в методе теста.

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...