2017-11-08 12 views
1

自分のDRFでエラーが発生しました。私はpostメソッドを使って認証しようとします。ポストDRFでの認証

管理者ユーザーのトークンは正しいです。私は安全な方法を使用する場合にはsucessfullですが、POSTメソッドで、いや、それは

私の見解

class SpecialistListView(ListCreateAPIView): 
    authentication_classes = (OAuth2Authentication,) 
    permission_classes = (permissions.IsAdminUser,) 
    queryset = Specialist.objects.all() 
    serializer_class = SpecialistSerializer 

返されたコードの状態である理由私は理解していないHTTP 401を認証しません。無許可。

テストでは機能しません。私は郵便配達所でそれが成功していることをチェックする。

私はちょうどポストの前に資格情報を追加して、それが動作する私のtest_client

client = APIClient() 
client.credentials(HTTP_AUTHORIZATION='Bearer EGsnU4Cz3Mx5bUCuLrc2hmup51sSGz') 

class CreateSpecialist(APITestCase): 
    fixtures = ['data','data2'] 
    def setUp(self): 
     self.valid_payload = { 
      'username': 'julia', 
      'nick': 'julia', 
      'password': 'intel12345', 
      "first_name": "juliana", 
      "last_name": "garzon" 
     } 

def test_create_specialist(self): 
    response = self.client.post(
     reverse('specialists'), 
     data=json.dumps(self.valid_payload), 
     content_type='application/json' 
    ) 
    self.assertEqual(response.status_code, status.HTTP_201_CREATED) 

答えて

1

rest_framework.test輸入APIClientから

をAPIClientを使用しています! :D

def test_create_specialist(self): 
    self.client.credentials(HTTP_AUTHORIZATION='Bearer EGsnU4Cz3Mx5bUCuLrc2hmup51sSGz') 
    response = self.client.post(
     reverse('specialists'), 
     data=json.dumps(self.valid_payload), 
     content_type='application/json' 
    ) 
    self.assertEqual(response.status_code, status.HTTP_201_CREATED) 
関連する問題