Несколько POST в модульном тесте Django - PullRequest
0 голосов
/ 10 декабря 2010

Я пишу юнит-тесты для проверки профиля модуля аватара.Итак, у меня есть форма, которая позволяет пользователю загружать аватар.Если он существует, он просто заменяет текущий.

В моем тесте я делаю следующее (настройка класса регистрирует пользователя - здесь не показано):

    f = open('testfile1.jpg')
    data = {'image':f}
    response = self.client.post('/profile/uploadavatar/',data)
    self.assertEqual(response.status_code, 200)
    self.assertEqual(self.user1.get_profile().avatar.image.name, u'uploads/images/testfile1.jpg')
    f.close()

    f = open('testfile2.jpg')
    data = {'image':f}
    response = self.client.post('/profile/uploadavatar/',data)
    self.assertEqual(response.status_code, 200)
    self.assertEqual(self.user1.get_profile().avatar.image.name, u'uploads/images/testfile2.jpg')
    f.close()

ВторойassertEqual для проверки имени изображения аватара всегда терпит неудачу, потому что ему все еще задано первое имя файла (testfile1.jpg).Однако, когда я проверяю это вручную, код выполняет то, что, как я думаю, должен заменить старый аватар новым.

Я что-то не так делаю?Я новичок в модульных тестах django, поэтому я могу упустить что-то очень простое ...

Любые идеи будут оценены.

Заранее спасибо!

1 Ответ

0 голосов
/ 10 декабря 2010

Объект self.user1 вместе с профилем кэшируются в начале.

Перезагрузите объекты пользователя / профиля между действиями, чтобы увидеть обновленные данные.

(вытянуто из комментариев.)

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