@@ -36,6 +36,65 @@ def test_create(client_auth: TestClient, dbsession: Session, room_path, group_pa
3636 assert response_model .group_id == request_obj ["group_id" ]
3737
3838
39+ def test_create_many (client_auth : TestClient , dbsession : Session , room_factory , group_factory , lecturer_factory ):
40+ room_path1 = room_factory (client_auth )
41+ group_path1 = group_factory (client_auth )
42+ lecturer_path1 = lecturer_factory (client_auth )
43+ room_path2 = room_factory (client_auth )
44+ group_path2 = group_factory (client_auth )
45+ lecturer_path2 = lecturer_factory (client_auth )
46+ room_id1 = int (room_path1 .split ("/" )[- 1 ])
47+ group_id1 = int (group_path1 .split ("/" )[- 1 ])
48+ lecturer_id1 = int (lecturer_path1 .split ("/" )[- 1 ])
49+ room_id2 = int (room_path2 .split ("/" )[- 1 ])
50+ group_id2 = int (group_path2 .split ("/" )[- 1 ])
51+ lecturer_id2 = int (lecturer_path2 .split ("/" )[- 1 ])
52+ request_obj = [
53+ {
54+ "name" : "string" ,
55+ "room_id" : [room_id1 ],
56+ "group_id" : group_id1 ,
57+ "lecturer_id" : [lecturer_id1 ],
58+ "start_ts" : "2022-08-26T22:32:38.575Z" ,
59+ "end_ts" : "2022-08-26T22:32:38.575Z" ,
60+ },
61+ {
62+ "name" : "string" ,
63+ "room_id" : [room_id2 ],
64+ "group_id" : group_id2 ,
65+ "lecturer_id" : [lecturer_id2 ],
66+ "start_ts" : "2022-08-26T22:32:38.575Z" ,
67+ "end_ts" : "2022-08-26T22:32:38.575Z" ,
68+ },
69+ ]
70+ response = client_auth .post (f"{ RESOURCE } bulk" , json = request_obj )
71+ assert response .status_code == status .HTTP_200_OK , response .json ()
72+ response_obj = response .json ()
73+ assert response_obj [0 ]["name" ] == request_obj [0 ]["name" ]
74+ assert response_obj [0 ]["room" ][0 ]["id" ] == room_id1
75+ assert response_obj [0 ]["group" ]["id" ] == request_obj [0 ]["group_id" ]
76+ assert response_obj [0 ]["lecturer" ][0 ]["id" ] == lecturer_id1
77+ assert response_obj [0 ]["start_ts" ][:20 ] == request_obj [0 ]["start_ts" ][:20 ]
78+ assert response_obj [0 ]["end_ts" ][:20 ] == request_obj [0 ]["end_ts" ][:20 ]
79+ response_model : Event = dbsession .query (Event ).get (response_obj [0 ]["id" ])
80+ assert response_model .name == request_obj [0 ]["name" ]
81+ assert [row .id for row in response_model .room ] == request_obj [0 ]["room_id" ]
82+ assert [row .id for row in response_model .lecturer ] == request_obj [0 ]["lecturer_id" ]
83+ assert response_model .group_id == request_obj [0 ]["group_id" ]
84+
85+ assert response_obj [1 ]["name" ] == request_obj [1 ]["name" ]
86+ assert response_obj [1 ]["room" ][0 ]["id" ] == room_id2
87+ assert response_obj [1 ]["group" ]["id" ] == request_obj [1 ]["group_id" ]
88+ assert response_obj [1 ]["lecturer" ][0 ]["id" ] == lecturer_id2
89+ assert response_obj [1 ]["start_ts" ][:20 ] == request_obj [1 ]["start_ts" ][:20 ]
90+ assert response_obj [1 ]["end_ts" ][:20 ] == request_obj [1 ]["end_ts" ][:20 ]
91+ response_model : Event = dbsession .query (Event ).get (response_obj [1 ]["id" ])
92+ assert response_model .name == request_obj [1 ]["name" ]
93+ assert [row .id for row in response_model .room ] == request_obj [1 ]["room_id" ]
94+ assert [row .id for row in response_model .lecturer ] == request_obj [1 ]["lecturer_id" ]
95+ assert response_model .group_id == request_obj [1 ]["group_id" ]
96+
97+
3998def test_delete (client_auth : TestClient , dbsession : Session , room_path , lecturer_path , group_path ):
4099 room_id = int (room_path .split ("/" )[- 1 ])
41100 group_id = int (group_path .split ("/" )[- 1 ])
@@ -137,7 +196,7 @@ def test_update_all(client_auth: TestClient, dbsession: Session):
137196 "start_ts" : "2022-08-26T22:32:38.575Z" ,
138197 "end_ts" : "2022-08-26T22:32:38.575Z" ,
139198 }
140- client_auth .patch (RESOURCE + f"{ id_ } / " , json = request_obj_2 )
199+ client_auth .patch (RESOURCE + f"{ id_ } " , json = request_obj_2 )
141200 response = client_auth .get (RESOURCE + f"{ id_ } /" )
142201 assert response .status_code == status .HTTP_200_OK , response .json ()
143202 response_obj = response .json ()
@@ -175,3 +234,49 @@ def test_update_all(client_auth: TestClient, dbsession: Session):
175234 dbsession .delete (lecturer )
176235 dbsession .delete (group )
177236 dbsession .commit ()
237+
238+
239+ def test_delete_from_to (client_auth : TestClient , dbsession : Session , room_factory , group_factory , lecturer_factory ):
240+ room_path1 = room_factory (client_auth )
241+ group_path1 = group_factory (client_auth )
242+ lecturer_path1 = lecturer_factory (client_auth )
243+ room_path2 = room_factory (client_auth )
244+ group_path2 = group_factory (client_auth )
245+ lecturer_path2 = lecturer_factory (client_auth )
246+ room_id1 = int (room_path1 .split ("/" )[- 1 ])
247+ group_id1 = int (group_path1 .split ("/" )[- 1 ])
248+ lecturer_id1 = int (lecturer_path1 .split ("/" )[- 1 ])
249+ room_id2 = int (room_path2 .split ("/" )[- 1 ])
250+ group_id2 = int (group_path2 .split ("/" )[- 1 ])
251+ lecturer_id2 = int (lecturer_path2 .split ("/" )[- 1 ])
252+ request_obj = [
253+ {
254+ "name" : "string" ,
255+ "room_id" : [room_id1 ],
256+ "group_id" : group_id1 ,
257+ "lecturer_id" : [lecturer_id1 ],
258+ "start_ts" : "2022-08-26T22:32:38.575Z" ,
259+ "end_ts" : "2022-08-26T22:32:38.575Z" ,
260+ },
261+ {
262+ "name" : "string" ,
263+ "room_id" : [room_id2 ],
264+ "group_id" : group_id2 ,
265+ "lecturer_id" : [lecturer_id2 ],
266+ "start_ts" : "2022-08-26T22:32:38.575Z" ,
267+ "end_ts" : "2022-08-26T22:32:38.575Z" ,
268+ },
269+ ]
270+ response = client_auth .post (f"{ RESOURCE } bulk" , json = request_obj )
271+ created = response .json ()
272+ assert response .status_code == status .HTTP_200_OK , response .json ()
273+ response = client_auth .delete (f"{ RESOURCE } bulk" , params = {"start" : "2022-08-26" , "end" : "2022-08-27" })
274+ assert response .status_code == 200
275+ response = client_auth .get (f"{ RESOURCE } { created [0 ]['id' ]} " )
276+ assert response .status_code == 404
277+ response = client_auth .get (f"{ RESOURCE } { created [1 ]['id' ]} " )
278+ assert response .status_code == 404
279+ obj1 = dbsession .query (Event ).filter (Event .id == created [0 ]["id" ]).one ()
280+ obj2 = dbsession .query (Event ).filter (Event .id == created [1 ]["id" ]).one ()
281+ for row in (obj1 , obj2 ):
282+ dbsession .delete (row )
0 commit comments