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
반응형