사용자가 특정 범위에 대한 액세스 권한을 부여한 후 내 응용 프로그램이 물건을 처리 할 수있는 oauth 플로우가 있습니다. 이 작업을 수행하려면 정의 된 범위의 액세스 토큰이 필요합니다. 이것을 (django allauth 패키지로) 구현했으며 훌륭하게 작동합니다. 하지만 ... 시험을하고 싶습니다.장고의 oauth 흐름을 통한 단위 테스트
login = self.client.login(username='test_user', password='test')
self.assertTrue(login)
resp = self.client.post(reverse('oauth_login'))
self.assertEqual(resp.status_code, 302)
payload = {'session_key': 'email', 'session_password': 'pw', }
resp2 = requests.post(resp['location'], data=payload)
resp3 = self.client.get(reverse('do_stuff_with_access_token'))
self.assertEqual(resp.status_code, 302)
여기에 문제 것은 내가 내 요청 변수의 액세스 토큰을 얻을 수 없다는 것입니다 : 이것은 내가 (요청 패키지는 스테로이드에 URLLIB처럼) 지금까지 가지고있는 것입니다. 내 생각 엔 응용 프로그램의 범위를 벗어나고 Django는 요청 범위에서 변수를 얻지 못한다는 것입니다.
어떻게하면 이것을 우아하게 테스트 할 수 있습니까? access_token을 조롱하는 것은 나에게 약간 잘못된 것 같습니다. 나는 지금 양식을 작성하기 위해 셀레늄을 시도하고 있지만, 심지어는 지금까지 성공하지 못했습니다 ...
고마워요!
어떤 OAuth 라이브러리를 사용하고 있습니까? –
조롱이 왜 잘못 보입니까? 원격 서비스를 테스트하지 않고 응용 프로그램이 원격 서비스의 응답 및 실패를 처리하는 방법을 테스트하고 있습니다. 조롱을위한 완벽한 사용 사례 인 것 같습니다. –
@DanielRoseman 나는 django allauth를 사용하고있다. 그것이 oauth를 얼마나 정확히 구현하는지 모르겠다. 당신이 부르는 서비스에 의존하고있는 것 같아. – zwervertje