66
77import datetime
88
9- from django .contrib .auth import get_user_model
10- from django .test import TestCase
11- from rest_framework .test import APIRequestFactory
129
13- from program .models import Proposal , ProgramCategory
14- from program .viewsets import ProposalViewSet
10+ class ProgramApiTest (TestCase ):
11+ def setUp (self ) -> None :
12+ user = User .objects .create ()
13+ user .username = "gdhong"
14+ user .password = "password"
15+ 16+ user .save ()
1517
16- User = get_user_model ()
18+ category = ProgramCategory (name = "임시" , slug = "temp" )
19+ category .save ()
1720
21+ Proposal (
22+ user = user ,
23+ user_name = "홍길동" ,
24+ title = "세션 제목1" ,
25+ brief = "요약1" ,
26+ desc = "설명1" ,
27+ comment = "comment1" ,
28+ difficulty = "I" ,
29+ duration = "L" ,
30+ language = "K" ,
31+ category = category ,
32+ accepted = True ,
33+ video_open_at = datetime .datetime .strptime (
34+ config .PYCON_KR_2022_DATE1 , "%Y%m%d"
35+ ),
36+ ).save ()
1837
19- class ProgramTest (TestCase ):
20- user_name = ["park" , "seo" , "kim" , "jung" , "kang" ]
21- title = ["제목1" , "제목2" , "제목3" , "제목4" , "제목5" ]
22- brief = ["brief1" , "brief2" , "brief3" , "brief4" , "brief5" ]
23- desc = ["desc1" , "desc2" , "desc3" , "desc4" , "desc5" ]
24- difficulty = ["B" , "I" , "E" , "B" , "I" ]
25- duration = ["S" , "L" , "S" , "L" , "S" ]
38+ Proposal (
39+ user = user ,
40+ user_name = "김철수" ,
41+ title = "세션 제목2" ,
42+ brief = "요약2" ,
43+ desc = "설명2" ,
44+ comment = "comment2" ,
45+ difficulty = "I" ,
46+ duration = "L" ,
47+ language = "K" ,
48+ category = category ,
49+ accepted = True ,
50+ video_open_at = datetime .datetime .strptime (
51+ config .PYCON_KR_2022_DATE2 , "%Y%m%d"
52+ ),
53+ ).save ()
2654
27- def setUp (self ) -> None :
28- # 사용자 객체 생성
29- for i in range (len (self .user_name )):
30- new_user = User ()
31- new_user .username = self .user_name [i ]
32- new_user .set_password (self .user_name [i ])
33- new_user .save ()
34-
35- # Category 생성
36- new_category = ProgramCategory ()
37- new_category .name = ["카테고리" ]
38- new_category .slug = ["category" ]
39- new_category .save ()
40-
41- # Proposal 생성
42- target_user = User .objects .get (username = self .user_name [0 ])
43-
44- for i in range (len (self .user_name )):
45- new_proposal = Proposal ()
46- new_proposal .user = target_user
47- new_proposal .title = self .title [i ]
48- new_proposal .brief = self .brief [i ]
49- new_proposal .desc = self .desc [i ]
50- new_proposal .difficulty = self .difficulty [i ]
51- new_proposal .duration = self .duration [i ]
52- new_proposal .category = new_category
53-
54- new_proposal .save ()
55-
56- def test_ProposalViewSet (self ):
57- req_body = {}
58-
59- request = APIRequestFactory ().get ("/api/program/list" , req_body )
60- response = ProposalViewSet ().list (request = request )
61-
62- self .assertEqual (len (response .data ), len (self .user_name ))
55+ Proposal (
56+ user = user ,
57+ user_name = "badUser" ,
58+ title = "XXXXX" ,
59+ brief = "XXX" ,
60+ desc = "XXX" ,
61+ comment = "XXX" ,
62+ difficulty = "I" ,
63+ duration = "L" ,
64+ language = "K" ,
65+ category = category ,
66+ accepted = False ,
67+ video_open_at = datetime .datetime .strptime (
68+ config .PYCON_KR_2022_DATE2 , "%Y%m%d"
69+ ),
70+ ).save ()
71+
72+ def test_get_all_session (self ):
73+ c = Client ()
74+ response = c .get ("/api/program/list/" , {})
75+
76+ self .assertEqual (response .status_code , 200 )
77+ self .assertEqual (len (response .data ), 2 )
78+
79+ def test_get_day1_session (self ):
80+ c = Client ()
81+ response = c .get ("/api/program/list/day1/" , {})
82+
83+ # self.assertEqual(response.status_code, 200)
84+ self .assertEqual (len (response .data ), 1 )
85+
86+ def test_get_day2_session (self ):
87+ c = Client ()
88+ response = c .get ("/api/program/list/day2/" , {})
89+
90+ # self.assertEqual(response.status_code, 200)
91+ self .assertEqual (len (response .data ), 1 )
0 commit comments