2016-09-27 11 views
0

こんにちは、私のアプリのテストケースを作成しようとしています。 URL = '/ api/project /'。私は認証と一緒にget、post、putメソッドを有効にしました。しかし、それでもまだ、私は、次のコマンドを使用してテストケースを実行し、ここでの作品は罰金ではなく、ポスト要求GET、POSTリクエストapi_clientのtastypieに401エラーが発生しました

class EntryResourceTest(ResourceTestCaseMixin, TestCase): 
    class Meta: 
     queryset = Project.objects.all() 
     resource_name = 'project' 
     allowed_methods = ['get', 'post', 'put'] 
     authentication = Authentication() 
     authorization = Authorization() 

    def setUp(self): 
     super(EntryResourceTest, self).setUp() 
     # Create a user. 
     self.username = 'daniel' 
     self.password = 'pass' 
     self.user = User.objects.create_user(self.username, '[email protected]', self.password) 

    def login(self): 
     return self.api_client.client.login(
     username=self.username, password=self.password) 

    def get_credentials(self): 
    return self.create_basic(username=self.username, password=self.password) 

    def test_post_list(self): 
     self.login() 
     req_get = self.api_client.get('/api/project/', format='json', authentication=self.get_credentials())  # -> get works and i get 200 status code 
     req_post = self.api_client.post('/api/project/', format='json', data=self.post_data, authentication=self.get_credentials()) 

のための401エラーを取得します。そして、)それは私がself.loginで定義されているデフォルトのログインを使用します(と私は認証パラメータを渡さない場合でも、要求が働く取得

django-admin test myapp.api.project.tests   

答えて

0

利用BasicAuthenticationの代わりAuthentication

self.create_basic(...)BasicAuthenticationのヘッダーを作成します。

def create_basic(self, username, password): 
    """ 
    Creates & returns the HTTP ``Authorization`` header for use with BASIC 
    Auth. 
    """ 
関連する問題