[Django] Test 코드 작성시 header 추가하기

jeong_hyeon·2022년 6월 30일
0

Django_DRF

목록 보기
12/12

Django를 API서버로만 이용할 때, 외부 사용자들에게 header를 통해 인증정보를 받아야 할 경우가 있다.

이때, Test코드에서도 이를 처리해야 하는데,

TestCase의 client에서 요청을 보낼때,

def test_user_profile_success(self):
        token = RefreshToken.for_user(User.objects.get(id =1))
        header = {"HTTP_access": str(token.access_token),'HTTP_refresh' : str(token)}
        response = client.get('/users/profile/', **header, content_type='application/json')
        self.assertEqual(response.status_code, 200)
        self.assertEqual(response.json(),
            [
                {
                    'id': 1, 
                    'uid': '123123123',
                    'username': 'test',
                    'email': 'test@gmail.com',
                    'picture': 'https://ifh.123123/g/ElNIU1.jpg',
                    'last_login': None,
                    'rank_set': [{'correct_answer': 0, 'total_time': 0, 'quiz_passed': 0, 'attempt': 0}]
                }
            ]
        )

header에 위와같은 형식으로 보내지게 된다. HTTP_ 라고 시작하는 key를 HTTP_를 떼고 header에 실어서 보내기 때문에,

반드시 앞에 HTTP_를 붙여서 요청해야 한다.

0개의 댓글