@@ -288,7 +288,7 @@ async def test_news_integration(
288
288
289
289
290
290
@pytest .mark .asyncio
291
- async def test_insert_news_likes_endpoint (
291
+ async def test_news_likes_endpoint (
292
292
session : AsyncSession ,
293
293
async_client : AsyncClient ,
294
294
community : Community ,
@@ -312,63 +312,52 @@ async def test_insert_news_likes_endpoint(
312
312
assert stored_news is not None
313
313
assert stored_news .likes == 0
314
314
315
- email = "like@test.com"
315
+ emails = [ "like@test.com" , "like2@test.com" ]
316
316
317
+ # Add likes
317
318
response = await async_client .post (
318
319
f"/api/news/{ stored_news .id } /like" ,
319
- json = {"email" : email },
320
+ json = {"email" : emails [ 0 ] },
320
321
headers = valid_auth_headers ,
321
322
)
322
323
assert response .status_code == status .HTTP_200_OK
323
324
statement = select (News ).where (News .title == news_data ["title" ])
324
325
result = await session .exec (statement )
325
326
stored_news = result .first ()
326
327
assert stored_news .likes == 1
327
- assert stored_news .user_email_list == f"['{ encode_email (email )} ']"
328
+ assert stored_news .user_email_list == f"['{ encode_email (emails [ 0 ] )} ']"
328
329
329
-
330
- @pytest .mark .asyncio
331
- async def test_delete_news_likes_endpoint (
332
- session : AsyncSession ,
333
- async_client : AsyncClient ,
334
- community : Community ,
335
- valid_auth_headers : Mapping [str , str ],
336
- ):
337
- news_data = {
338
- "title" : "Test News" ,
339
- "content" : "Test news content." ,
340
- "category" : "test_category" ,
341
- "tags" : "test_tag" ,
342
- "source_url" : "https://example.com/test-news" ,
343
- "social_media_url" : "https://test.com/test_news" ,
344
- }
345
330
response = await async_client .post (
346
- "/api/news" , json = news_data , headers = valid_auth_headers
331
+ f"/api/news/{ stored_news .id } /like" ,
332
+ json = {"email" : emails [1 ]},
333
+ headers = valid_auth_headers ,
347
334
)
348
335
assert response .status_code == status .HTTP_200_OK
349
336
statement = select (News ).where (News .title == news_data ["title" ])
350
337
result = await session .exec (statement )
351
338
stored_news = result .first ()
352
- assert stored_news is not None
353
- assert stored_news .likes == 0
354
-
355
- email = "like@test.com"
339
+ assert stored_news .likes == 2
340
+ assert (
341
+ stored_news .user_email_list
342
+ == f"['{ encode_email (emails [0 ])} ', '{ encode_email (emails [1 ])} ']"
343
+ )
356
344
357
- response = await async_client .post (
345
+ # Remove likes
346
+ response = await async_client .delete (
358
347
f"/api/news/{ stored_news .id } /like" ,
359
- json = {"email" : email },
348
+ params = {"email" : emails [ 0 ] },
360
349
headers = valid_auth_headers ,
361
350
)
362
351
assert response .status_code == status .HTTP_200_OK
363
352
statement = select (News ).where (News .title == news_data ["title" ])
364
353
result = await session .exec (statement )
365
354
stored_news = result .first ()
366
355
assert stored_news .likes == 1
367
- assert stored_news .user_email_list == f"['{ encode_email (email )} ']"
356
+ assert stored_news .user_email_list == f"['{ encode_email (emails [ 1 ] )} ']"
368
357
369
358
response = await async_client .delete (
370
359
f"/api/news/{ stored_news .id } /like" ,
371
- params = {"email" : email },
360
+ params = {"email" : emails [ 1 ] },
372
361
headers = valid_auth_headers ,
373
362
)
374
363
assert response .status_code == status .HTTP_200_OK
0 commit comments