Модульное тестирование Django: ValueError на GET url - PullRequest
0 голосов
/ 27 июня 2011

В настоящее время я пытаюсь запустить модульное тестирование, используя GET и POST для определенных URL, когда мой клиент вошел в систему.

Я установил своего пользователя и логин следующим образом:

 self.client = Client()
 self.client.login(username="test_user", password="test")  # Returns True

и затем попытайтесь получить, например:

response = self.client.get('/avantages/%s/register' % self.fst_benefit.id)

Я получаю эту ошибку:

ValueError: invalid literal for int() with base 10: 'avantages/1'

Примечание: ошибка не возникает, когда я не использую логин для self.client

Любая помощь?

Ответы [ 2 ]

1 голос
/ 28 июня 2011

Я нашел решение своей проблемы,

Я не использовал значения int как идентификаторы в моем urls.py. Поэтому я просто добавил [\ d] к своим шаблонам обновления идентификаторов.

Более того, я использовал реверс, чтобы сгенерировать URL логина. Теперь он отлично работает, какой бы адрес я ни пытался использовать, когда я вошел в систему.

my_url = reverse('my_view',
                 kwargs={'benefit_id': self.fst_benefit.id})
response = self.client.get(my_url)
1 голос
/ 27 июня 2011

вы пытаетесь преобразовать 'avantages / 1' в int, похоже, что Client (что бы это ни было) ожидает, что метод login будет вызываться с одним целым, то есть self.fst_benefit.id, а не '/avantages/%s/register' % self.fst_benefit.id

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