https://github.com/sdoram/B8_ChangeART/commit/365b4f8b726a84d177aaba447f377e71db37d0d6
https://github.com/sdoram/B8_ChangeART/commit/8a91a0dfea7535039299c4e5054c40c71d3d1b83
1.머신러닝 팀 프로젝트 - 테스트 코드(이메일 인증)
문제점
postman에서 실제 이메일을 사용하여 이메일 인증을 할 수 있지만, test_code에서 실제 이메일을 넣어야하는지 알지 못함
시도해 본 것들
검색 결과 test.py에서 실행되는 것은 실제로 이메일이 발송되지는 않고, shell에서 테스트하는 것 처럼 code 자체에 문제가 없는지만 테스트 해준다.
@classmethod로 바뀌지 않을 값을 설정하기
class SignupViewTest(APITestCase):
@classmethod
def setUpTestData(cls):
cls.email = {"email": "signup@test.com"}
cls.url = reverse("athnt_code_create_view")
setUp으로 필요한 사전과정 진행
def setUp(self):
self.response = self.client.post(self.url, self.email)
self.verify = Verify.objects.get(email=self.email["email"])
self가 필요해서 setUpTestData 대신 setUp 실행
verify를 통해서 이메일과 인증코드를 가지고 있는 모델을 불러온다.
인증 코드에 athnt_code를 넣어 회원가입 하기
def test_signup(self):
url = reverse("signup_view")
user_data = {
"email": "signup@test.com",
"nickname": "테스트",
"password": "1234",
"verify_code": self.verify.athnt_code,
}
response = self.client.post(url, user_data)
self.assertEqual(response.data["message"], "가입완료!")
해결 방법
class SignupViewTest(APITestCase):
@classmethod
def setUpTestData(cls):
cls.email = {"email": "signup@test.com"}
cls.url = reverse("athnt_code_create_view")
def setUp(self):
self.response = self.client.post(self.url, self.email)
self.verify = Verify.objects.get(email=self.email["email"])
def test_signup(self):
url = reverse("signup_view")
user_data = {
"email": "signup@test.com",
"nickname": "테스트",
"password": "1234",
"verify_code": self.verify.athnt_code,
}
response = self.client.post(url, user_data)
self.assertEqual(response.data["message"], "가입완료!")
알게 된 점
특수한 상황이 아닌 일반적인 상황에서는 검색을 하면 대부분 방법을 찾을 수 있다.
필요에 따라 코드를 처음부터 만드는 과정이 재밌고, 기억에도 확실히 잘 남는다.
2.머신러닝 팀 프로젝트 - for문 실전 사용
문제점
테스트 코드를 실험하는 도중 같은 코드를 두 번 사용해야하는 일이 발생
시도해 본 것들
def test_un_follow_user(self):
for _ in range(2):
response = self.client.post(
path=reverse("follow_view", args=[self.to_user.id]),
HTTP_AUTHORIZATION=f"Bearer {self.from_user_access_token}",
)
self.assertEqual(response.data["message"], "팔로우를 취소했습니다")
알게 된 점
알고리즘에서만 써보며 익히던 for문을 실제로 필요해서 처음 사용해본 것 같아서 기쁘다.
3.faker 패키지 import
문제점
faker를 import했지만 찾지 못하는 이슈 발생
해결 방법
python 파일의 이름을 faker.py로 만들어서 패키지의 파일을 인식하지 못하는 문제였다.
알게 된 점
처음 연습하는 패키지를 시도할 때 파일명을 패키지와 비슷하게 만들지 말자
'개발일지 > TIL' 카테고리의 다른 글
TIL 23-05-29 머신러닝 팀 프로젝트 - KPT 회고 (0) | 2023.05.29 |
---|---|
TIL 23-05-27 머신러닝 팀 프로젝트 - annotate() (0) | 2023.05.27 |
TIL 23-05-25 머신러닝 팀 프로젝트 - git issue (0) | 2023.05.25 |
TIL 23-05-24 머신러닝 프로젝트 - git commit --amend (0) | 2023.05.24 |
TIL 23-05-23 머신러닝 팀 프로젝트 - poetry&pyenv 사용하기 (0) | 2023.05.23 |