코딩한걸음
728x90
반응형

Today I Learned


어떤 문제가 있었는지

DRF test를 적용하려는데 강의에서는

reverse에 <int:id> 와 같은 매개 변수를 같이 넘기는 방법을 알려주지 않아서 직접 찾아봤다

 


내가 시도해 본 것들

    # admin이 put요청 보내면 200 확인
    def test_update_product(self):
        response = self.client.put(
            path=reverse("product_detail", product_id=self.product.id),
            data=self.product_data,
            HTTP_AUTHORIZATION=f"Bearer {self.admin_access_token}",
            )
        self.assertEqual(response.status_code, 200)

 

이런식으로 reverse에 product_id를 지정해서 보내봤는데 해당 키워드가 없다고 에러가 떴다

 

    # admin이 put요청 보내면 200 확인
    def test_update_product(self):
        response = self.client.put(
            path=reverse("product_detail", "product_id":self.product.id),
            data=self.product_data,
            HTTP_AUTHORIZATION=f"Bearer {self.admin_access_token}",
            )
        self.assertEqual(response.status_code, 200)

 

다음엔 이런방식으로 보내봤는데 역시 안됐다

 


어떻게 해결 했는지

    # admin이 put요청 보내면 200 확인
    def test_update_product(self):
        response = self.client.put(
            path=reverse("product_detail", kwargs={"product_id":self.product.id}),
            data=self.product_data,
            HTTP_AUTHORIZATION=f"Bearer {self.admin_access_token}",
            )
        self.assertEqual(response.status_code, 200)

 

이렇게 kwargs를 지정해서 보내주면 가능하다. 여러개도 보낼 수 있다.

추가로 쿼리는 args를 이용해서 보낼 수 있다

 


무엇을 새롭게 배웠는지

reverse에서 args, kwargs의 활용

 

 

 

728x90
반응형
profile

코딩한걸음

@Joonyeol_Yoon

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!