[drf | uuid] Build a Backend REST API - 45

Hyeseong·2021년 3월 8일
0

Add tests for uploading image to recipe😐

test_recipe_api🙄

모듈 tempfile, os, PIL을 임포트 할게요.

import tempfile
import os
from PIL import Image

tempfile모듈은 임시 파일과 디렉터리를 만듭니다.

그리고 아래 image_upload_url 함수를 정의할 게요.

가장 하단에 RecipeImageUploadTests클래스를 만들게요.
유저, 클라이언트, 인증, 레시피 객체를 미리 setUp메서드를 통해서 testdb생성전에 만들어 둘게요. 그리고 테스트가 끝나면 레시피객체의 이미지 속성을 삭제하도록 tearDown 메서드를 정의했어요.

test_upload_image_to_recipe😣

image생성을 할때는 new()메서드를 이용하는데요. 기본적으로 'RGB'를 인자로 두고 다음 width, height에 해당하는 값을 튜플로 박아둡니다.

그리고 img.save()메서드를 호출하는데요. 내부의 첫번째 인자로 파일 이름을 받게되요. format='JPEG'는 생략가능해요. 생략시 파일 이름의 extension을 default값으로 잡아서 적용하게 되요.

os.path.exists() 메서드의 경우에는 해당경로에 폴더와 파일이 존재하는지 True/False를 값을 반환해서 확인하게 되요.

test_upload_image_bad_request😥

post메서드에서 format의 값이 'multipart'라고 되어있는데요. 사진과 같이 media타입의 파일을 업로드 할 때 지정해주게되요. 자세한 사항은 아래 참고란을 통해서 확인할게요.

테스트 돌려보기 😃

Reverse for 'recipe-upload-image' not found 문구가 뜨고 test fail이 나타나요. 의도된 오류이기에 다음에 이 부분을 해결하도록 할게요.

참고 😮

http post요청시 multipart😏

참고 링크 - https://soooprmx.com/archives/9626

PIL | Image.new() method🥰

참고 링크 - https://www.geeksforgeeks.org/python-pil-image-new-method/

profile
어제보다 오늘 그리고 오늘 보다 내일...

0개의 댓글