1515pytestmark = pytest .mark .integration
1616
1717
18- @pytest .fixture
19- async def calendar_test_client ():
20- """Create a new, isolated NextcloudClient for calendar tests."""
21- client = NextcloudClient .from_env ()
22- try :
23- yield client
24- finally :
25- await client .close ()
26-
27-
2818@pytest .fixture
2919def test_calendar_name ():
3020 """Unique calendar name for testing."""
3121 return f"test_calendar_{ uuid .uuid4 ().hex [:8 ]} "
3222
3323
3424@pytest .fixture
35- async def temporary_calendar (
36- calendar_test_client : NextcloudClient , test_calendar_name : str
37- ):
25+ async def temporary_calendar (nc_client : NextcloudClient , test_calendar_name : str ):
3826 """Create a temporary calendar for testing and clean up afterward."""
3927 calendar_name = test_calendar_name
4028
4129 try :
4230 # Create a test calendar
4331 logger .info (f"Creating temporary calendar: { calendar_name } " )
44- result = await calendar_test_client .calendar .create_calendar (
32+ result = await nc_client .calendar .create_calendar (
4533 calendar_name = calendar_name ,
4634 display_name = f"Test Calendar { calendar_name } " ,
4735 description = "Temporary calendar for integration testing" ,
@@ -62,16 +50,14 @@ async def temporary_calendar(
6250 # Cleanup: Delete the temporary calendar
6351 try :
6452 logger .info (f"Cleaning up temporary calendar: { calendar_name } " )
65- await calendar_test_client .calendar .delete_calendar (calendar_name )
53+ await nc_client .calendar .delete_calendar (calendar_name )
6654 logger .info (f"Successfully deleted temporary calendar: { calendar_name } " )
6755 except Exception as e :
6856 logger .error (f"Error deleting temporary calendar { calendar_name } : { e } " )
6957
7058
7159@pytest .fixture
72- async def temporary_event (
73- calendar_test_client : NextcloudClient , temporary_calendar : str
74- ):
60+ async def temporary_event (nc_client : NextcloudClient , temporary_calendar : str ):
7561 """Create a temporary event for testing and clean up afterward."""
7662 event_uid = None
7763 calendar_name = temporary_calendar
@@ -91,9 +77,7 @@ async def temporary_event(
9177
9278 try :
9379 logger .info (f"Creating temporary event in calendar: { calendar_name } " )
94- result = await calendar_test_client .calendar .create_event (
95- calendar_name , event_data
96- )
80+ result = await nc_client .calendar .create_event (calendar_name , event_data )
9781 event_uid = result .get ("uid" )
9882
9983 if not event_uid :
@@ -107,9 +91,7 @@ async def temporary_event(
10791 if event_uid :
10892 try :
10993 logger .info (f"Cleaning up temporary event: { event_uid } " )
110- await calendar_test_client .calendar .delete_event (
111- calendar_name , event_uid
112- )
94+ await nc_client .calendar .delete_event (calendar_name , event_uid )
11395 logger .info (f"Successfully deleted temporary event: { event_uid } " )
11496 except HTTPStatusError as e :
11597 if e .response .status_code != 404 :
@@ -120,9 +102,9 @@ async def temporary_event(
120102 )
121103
122104
123- async def test_list_calendars (calendar_test_client : NextcloudClient ):
105+ async def test_list_calendars (nc_client : NextcloudClient ):
124106 """Test listing available calendars."""
125- calendars = await calendar_test_client .calendar .list_calendars ()
107+ calendars = await nc_client .calendar .list_calendars ()
126108
127109 assert isinstance (calendars , list )
128110
@@ -144,7 +126,7 @@ async def test_list_calendars(calendar_test_client: NextcloudClient):
144126
145127
146128async def test_create_and_delete_event (
147- calendar_test_client : NextcloudClient , temporary_calendar : str
129+ nc_client : NextcloudClient , temporary_calendar : str
148130):
149131 """Test creating and deleting a basic event."""
150132 calendar_name = temporary_calendar
@@ -163,27 +145,23 @@ async def test_create_and_delete_event(
163145 }
164146
165147 try :
166- result = await calendar_test_client .calendar .create_event (
167- calendar_name , event_data
168- )
148+ result = await nc_client .calendar .create_event (calendar_name , event_data )
169149 assert "uid" in result
170150 assert result ["status_code" ] in [200 , 201 , 204 ]
171151
172152 event_uid = result ["uid" ]
173153 logger .info (f"Created event with UID: { event_uid } " )
174154
175155 # Verify event was created by retrieving it
176- retrieved_event , etag = await calendar_test_client .calendar .get_event (
156+ retrieved_event , etag = await nc_client .calendar .get_event (
177157 calendar_name , event_uid
178158 )
179159 assert retrieved_event ["uid" ] == event_uid
180160 assert retrieved_event ["title" ] == "Integration Test Event"
181161 assert retrieved_event ["location" ] == "Test Room"
182162
183163 # Delete event
184- delete_result = await calendar_test_client .calendar .delete_event (
185- calendar_name , event_uid
186- )
164+ delete_result = await nc_client .calendar .delete_event (calendar_name , event_uid )
187165 assert delete_result ["status_code" ] in [200 , 204 , 404 ]
188166
189167 logger .info (f"Successfully deleted event: { event_uid } " )
@@ -194,7 +172,7 @@ async def test_create_and_delete_event(
194172
195173
196174async def test_create_all_day_event (
197- calendar_test_client : NextcloudClient , temporary_calendar : str
175+ nc_client : NextcloudClient , temporary_calendar : str
198176):
199177 """Test creating an all-day event."""
200178 calendar_name = temporary_calendar
@@ -209,29 +187,27 @@ async def test_create_all_day_event(
209187 }
210188
211189 try :
212- result = await calendar_test_client .calendar .create_event (
213- calendar_name , event_data
214- )
190+ result = await nc_client .calendar .create_event (calendar_name , event_data )
215191 event_uid = result ["uid" ]
216192 logger .info (f"Created all-day event with UID: { event_uid } " )
217193
218194 # Verify event
219- retrieved_event , _ = await calendar_test_client .calendar .get_event (
195+ retrieved_event , _ = await nc_client .calendar .get_event (
220196 calendar_name , event_uid
221197 )
222198 assert retrieved_event ["title" ] == "All Day Test Event"
223199 assert retrieved_event .get ("all_day" ) is True
224200
225201 # Cleanup
226- await calendar_test_client .calendar .delete_event (calendar_name , event_uid )
202+ await nc_client .calendar .delete_event (calendar_name , event_uid )
227203
228204 except Exception as e :
229205 logger .error (f"All-day event test failed: { e } " )
230206 raise
231207
232208
233209async def test_create_recurring_event (
234- calendar_test_client : NextcloudClient , temporary_calendar : str
210+ nc_client : NextcloudClient , temporary_calendar : str
235211):
236212 """Test creating a recurring event."""
237213 calendar_name = temporary_calendar
@@ -248,38 +224,34 @@ async def test_create_recurring_event(
248224 }
249225
250226 try :
251- result = await calendar_test_client .calendar .create_event (
252- calendar_name , event_data
253- )
227+ result = await nc_client .calendar .create_event (calendar_name , event_data )
254228 event_uid = result ["uid" ]
255229 logger .info (f"Created recurring event with UID: { event_uid } " )
256230
257231 # Verify event
258- retrieved_event , _ = await calendar_test_client .calendar .get_event (
232+ retrieved_event , _ = await nc_client .calendar .get_event (
259233 calendar_name , event_uid
260234 )
261235 assert retrieved_event ["title" ] == "Weekly Recurring Test"
262236 assert retrieved_event .get ("recurring" ) is True
263237
264238 # Cleanup
265- await calendar_test_client .calendar .delete_event (calendar_name , event_uid )
239+ await nc_client .calendar .delete_event (calendar_name , event_uid )
266240
267241 except Exception as e :
268242 logger .error (f"Recurring event test failed: { e } " )
269243 raise
270244
271245
272- async def test_list_events_in_range (
273- calendar_test_client : NextcloudClient , temporary_event : dict
274- ):
246+ async def test_list_events_in_range (nc_client : NextcloudClient , temporary_event : dict ):
275247 """Test listing events within a date range."""
276248 calendar_name = temporary_event ["calendar_name" ]
277249
278250 # Get events for the next week
279251 start_datetime = datetime .now ()
280252 end_datetime = datetime .now () + timedelta (days = 7 )
281253
282- events = await calendar_test_client .calendar .get_calendar_events (
254+ events = await nc_client .calendar .get_calendar_events (
283255 calendar_name = calendar_name ,
284256 start_datetime = start_datetime ,
285257 end_datetime = end_datetime ,
@@ -300,9 +272,7 @@ async def test_list_events_in_range(
300272 assert "start_datetime" in event
301273
302274
303- async def test_update_event (
304- calendar_test_client : NextcloudClient , temporary_event : dict
305- ):
275+ async def test_update_event (nc_client : NextcloudClient , temporary_event : dict ):
306276 """Test updating an existing event."""
307277 calendar_name = temporary_event ["calendar_name" ]
308278 event_uid = temporary_event ["uid" ]
@@ -316,15 +286,13 @@ async def test_update_event(
316286 }
317287
318288 try :
319- result = await calendar_test_client .calendar .update_event (
289+ result = await nc_client .calendar .update_event (
320290 calendar_name , event_uid , updated_data
321291 )
322292 assert result ["uid" ] == event_uid
323293
324294 # Verify updates
325- updated_event , _ = await calendar_test_client .calendar .get_event (
326- calendar_name , event_uid
327- )
295+ updated_event , _ = await nc_client .calendar .get_event (calendar_name , event_uid )
328296 assert updated_event ["title" ] == "Updated Test Event Title"
329297 assert updated_event ["description" ] == "Updated description for test event"
330298 assert updated_event ["location" ] == "Updated Location"
@@ -338,7 +306,7 @@ async def test_update_event(
338306
339307
340308async def test_create_event_with_attendees (
341- calendar_test_client : NextcloudClient , temporary_calendar : str
309+ nc_client : NextcloudClient , temporary_calendar : str
342310):
343311 """Test creating an event with attendees."""
344312 calendar_name = temporary_calendar
@@ -356,56 +324,54 @@ async def test_create_event_with_attendees(
356324 }
357325
358326 try :
359- result = await calendar_test_client .calendar .create_event (
360- calendar_name , event_data
361- )
327+ result = await nc_client .calendar .create_event (calendar_name , event_data )
362328 event_uid = result ["uid" ]
363329 logger .info (f"Created event with attendees, UID: { event_uid } " )
364330
365331 # Verify event
366- retrieved_event , _ = await calendar_test_client .calendar .get_event (
332+ retrieved_event , _ = await nc_client .calendar .get_event (
367333 calendar_name , event_uid
368334 )
369335 assert retrieved_event ["title" ] == "Meeting with Attendees"
370336 assert "[email protected] " in retrieved_event .
get (
"attendees" ,
"" )
371337 assert retrieved_event ["status" ] == "TENTATIVE"
372338
373339 # Cleanup
374- await calendar_test_client .calendar .delete_event (calendar_name , event_uid )
340+ await nc_client .calendar .delete_event (calendar_name , event_uid )
375341
376342 except Exception as e :
377343 logger .error (f"Event with attendees test failed: { e } " )
378344 raise
379345
380346
381347async def test_get_nonexistent_event (
382- calendar_test_client : NextcloudClient , temporary_calendar : str
348+ nc_client : NextcloudClient , temporary_calendar : str
383349):
384350 """Test retrieving a non-existent event."""
385351 calendar_name = temporary_calendar
386352 fake_uid = f"nonexistent-{ uuid .uuid4 ()} "
387353
388354 with pytest .raises (HTTPStatusError ) as exc_info :
389- await calendar_test_client .calendar .get_event (calendar_name , fake_uid )
355+ await nc_client .calendar .get_event (calendar_name , fake_uid )
390356
391357 assert exc_info .value .response .status_code == 404
392358 logger .info (f"Correctly got 404 for nonexistent event: { fake_uid } " )
393359
394360
395361async def test_delete_nonexistent_event (
396- calendar_test_client : NextcloudClient , temporary_calendar : str
362+ nc_client : NextcloudClient , temporary_calendar : str
397363):
398364 """Test deleting a non-existent event."""
399365 calendar_name = temporary_calendar
400366 fake_uid = f"nonexistent-{ uuid .uuid4 ()} "
401367
402- result = await calendar_test_client .calendar .delete_event (calendar_name , fake_uid )
368+ result = await nc_client .calendar .delete_event (calendar_name , fake_uid )
403369 assert result ["status_code" ] == 404
404370 logger .info (f"Correctly got 404 for deleting nonexistent event: { fake_uid } " )
405371
406372
407373async def test_event_with_url_and_categories (
408- calendar_test_client : NextcloudClient , temporary_calendar : str
374+ nc_client : NextcloudClient , temporary_calendar : str
409375):
410376 """Test creating an event with URL and multiple categories."""
411377 calendar_name = temporary_calendar
@@ -423,14 +389,12 @@ async def test_event_with_url_and_categories(
423389 }
424390
425391 try :
426- result = await calendar_test_client .calendar .create_event (
427- calendar_name , event_data
428- )
392+ result = await nc_client .calendar .create_event (calendar_name , event_data )
429393 event_uid = result ["uid" ]
430394 logger .info (f"Created event with metadata, UID: { event_uid } " )
431395
432396 # Verify event
433- retrieved_event , _ = await calendar_test_client .calendar .get_event (
397+ retrieved_event , _ = await nc_client .calendar .get_event (
434398 calendar_name , event_uid
435399 )
436400 assert retrieved_event ["title" ] == "Event with URL and Categories"
@@ -441,22 +405,22 @@ async def test_event_with_url_and_categories(
441405 assert retrieved_event .get ("priority" ) == 2
442406
443407 # Cleanup
444- await calendar_test_client .calendar .delete_event (calendar_name , event_uid )
408+ await nc_client .calendar .delete_event (calendar_name , event_uid )
445409
446410 except Exception as e :
447411 logger .error (f"Event with metadata test failed: { e } " )
448412 raise
449413
450414
451415async def test_calendar_operations_error_handling (
452- calendar_test_client : NextcloudClient ,
416+ nc_client : NextcloudClient ,
453417):
454418 """Test error handling for calendar operations."""
455419
456420 # Test with non-existent calendar
457421 fake_calendar = f"nonexistent_calendar_{ uuid .uuid4 ().hex } "
458422
459423 with pytest .raises (HTTPStatusError ):
460- await calendar_test_client .calendar .get_calendar_events (fake_calendar )
424+ await nc_client .calendar .get_calendar_events (fake_calendar )
461425
462426 logger .info ("Error handling tests completed successfully" )
0 commit comments