2011-06-27 10 views
0

に私は現在、私のクライアントがログインしているときに、特定のURLにGETとPOSTを使用してユニットテストを実行しようとしているDjangoのユニットテスト:とValueError GETの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' 

メモ:自分のログインでログインを使用しないときは、エラーは発生しません。

助けが必要ですか?

答えて

1

I

私はurls.pyのIDとしてint値を強制していませんでした。だから私はパターンを参照している私のIDに[\ d]を追加しました。

さらに、ログインURLを生成するためにreverseを使用しました。それは今、私がログインしているときに使用しようとしているURLがあれば、今でも完全に動作します。

my_url = reverse('my_view', 
       kwargs={'benefit_id': self.fst_benefit.id}) 
response = self.client.get(my_url) 
1

あなたが変換しようとしているが、int型に「/ 1をavantages」、すなわちself.fst_benefit.idClient(つまり何でも)単一のintと呼ばれるlogin方法を期待していること表示されません'/avantages/%s/register' % self.fst_benefit.id

関連する問題