2010-12-10 4 views
0

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

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

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

спасибо Адаму! что это было :) cheers – mapes911

ответ

0

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

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

(Выведено из комментариев.)

Смежные вопросы