# 이미지 관련 import
from django.test.client import MULTIPART_CONTENT, encode_multipart, BOUNDARY
from PIL import Image
import tempfile # 임시파일 만드는 것
# 파이썬 장고 실무 심화 5주차, 10강 - setUp 함수를 모든 클래스에 대해서 늘 새로 만들어 주는건 비효율적이기 때문에, 수정되지 않고 반복해서 써야하는 함수 같은 경우 "클래스 메소드"중 하나인 setUpTestData를 쓰는게 좋음. 11강때 클래스메소드, 12강때 스태틱 메소드에 대해서 배움
def get_temporary_image(temp_file):
size = (200, 200)
color = (255, 0, 0, 0)
image = Image.new("RGBA", size, color)
image.save(temp_file, 'png')
return temp_file
class ArticleCreateTest(APITestCase):
def test_create_article_with_image(self):
# 임시 이미지 파일 생성
temp_file = tempfile.NamedTemporaryFile()
temp_file.name = "image.png"
image_file = get_temporary_image(temp_file)
image_file.seek(0)
self.article_data["image"] = image_file
#전송
response = self.client.post(
path=reverse("article_view"),
data=encode_multipart(data= self.article_data, boundary=BOUNDARY),
content_type=MULTIPART_CONTENT,
HTTP_AUTHORIZATION=f"Bearer {self.access_token}"
)
self.assertEqual(response.status_code, 200)