모듈 tempfile, os, PIL을 임포트 할게요.
import tempfile
import os
from PIL import Image
tempfile
모듈은 임시 파일과 디렉터리를 만듭니다.
그리고 아래 image_upload_url
함수를 정의할 게요.
가장 하단에 RecipeImageUploadTests
클래스를 만들게요.
유저, 클라이언트, 인증, 레시피 객체를 미리 setUp메서드를 통해서 testdb생성전에 만들어 둘게요. 그리고 테스트가 끝나면 레시피객체의 이미지 속성을 삭제하도록 tearDown
메서드를 정의했어요.
image생성을 할때는 new()메서드를 이용하는데요. 기본적으로 'RGB'를 인자로 두고 다음 width, height에 해당하는 값을 튜플로 박아둡니다.
그리고 img.save()메서드를 호출하는데요. 내부의 첫번째 인자로 파일 이름을 받게되요. format='JPEG'는 생략가능해요. 생략시 파일 이름의 extension을 default값으로 잡아서 적용하게 되요.
os.path.exists()
메서드의 경우에는 해당경로에 폴더와 파일이 존재하는지 True/False를 값을 반환해서 확인하게 되요.
post메서드에서 format의 값이 'multipart'라고 되어있는데요. 사진과 같이 media타입의 파일을 업로드 할 때 지정해주게되요. 자세한 사항은 아래 참고란을 통해서 확인할게요.
Reverse for 'recipe-upload-image' not found 문구가 뜨고 test fail이 나타나요. 의도된 오류이기에 다음에 이 부분을 해결하도록 할게요.
참고 링크 - https://soooprmx.com/archives/9626
참고 링크 - https://www.geeksforgeeks.org/python-pil-image-new-method/