Skip to content

Commit 4e8cfc1

Browse files
arthur-mesquitadan5e3s6ares
authored andcommitted
Create tests for PUT news endpoint
- Create test_put_news_endpoint - Add publish to test_insert_news
1 parent 7a4a3ae commit 4e8cfc1

File tree

1 file changed

+66
-15
lines changed

1 file changed

+66
-15
lines changed

tests/test_news.py

Lines changed: 66 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -72,21 +72,22 @@ async def test_insert_news(
7272
await session.commit()
7373
statement = select(News).where(News.title == "Test news")
7474
result = await session.exec(statement)
75-
found_news = result.first()
76-
assert found_news is not None
77-
assert found_news.title == news_list[0].title
78-
assert found_news.content == news_list[0].content
79-
assert found_news.category == news_list[0].category
80-
assert found_news.user_email == news_list[0].user_email
81-
assert found_news.source_url == news_list[0].source_url
82-
assert found_news.tags == news_list[0].tags
83-
assert found_news.social_media_url == news_list[0].social_media_url
84-
assert found_news.likes == 0
85-
assert found_news.community_id == community.id
86-
assert isinstance(found_news.created_at, datetime)
87-
assert isinstance(found_news.updated_at, datetime)
88-
assert found_news.created_at <= datetime.now()
89-
assert found_news.updated_at >= found_news.created_at
75+
stored_news = result.first()
76+
assert stored_news is not None
77+
assert stored_news.title == news_list[0].title
78+
assert stored_news.content == news_list[0].content
79+
assert stored_news.category == news_list[0].category
80+
assert stored_news.user_email == news_list[0].user_email
81+
assert stored_news.source_url == news_list[0].source_url
82+
assert stored_news.tags == news_list[0].tags
83+
assert stored_news.social_media_url == news_list[0].social_media_url
84+
assert stored_news.likes == 0
85+
assert stored_news.community_id == community.id
86+
assert isinstance(stored_news.created_at, datetime)
87+
assert isinstance(stored_news.updated_at, datetime)
88+
assert stored_news.created_at <= datetime.now()
89+
assert stored_news.updated_at >= stored_news.created_at
90+
assert stored_news.publish is False
9091

9192

9293
@pytest.mark.asyncio
@@ -221,6 +222,7 @@ async def test_get_news_by_id(
221222
statement = select(News).where(News.title == "Test news")
222223
result = await session.exec(statement)
223224
stored_news = result.first()
225+
assert stored_news is not None
224226

225227
response = await async_client.get(
226228
"/api/news",
@@ -288,6 +290,51 @@ async def test_news_integration(
288290
assert data["news_list"][0]["likes"] == 0
289291

290292

293+
@pytest.mark.asyncio
294+
async def test_put_news_endpoint(
295+
session: AsyncSession,
296+
async_client: AsyncClient,
297+
community: Community,
298+
valid_auth_headers: Mapping[str, str],
299+
):
300+
session.add_all(news_list)
301+
await session.commit()
302+
303+
statement = select(News).where(News.title == "Test news")
304+
result = await session.exec(statement)
305+
stored_news = result.first()
306+
assert stored_news is not None
307+
308+
response = await async_client.put(
309+
"/api/news",
310+
params={
311+
"title": "updated title",
312+
"content": "updated content",
313+
"category": "updated_category",
314+
"user_email": "updated_email@test.com",
315+
"source_url": "https://updated_url.com",
316+
"tags": "test_tag_updated",
317+
"user_email_list": "updated_email@test.com",
318+
"social_media_url": "https://updated_social_media_url.com",
319+
"likes": 42,
320+
},
321+
headers=valid_auth_headers,
322+
json={"publish": True},
323+
)
324+
data = response.json()
325+
assert response.status_code == status.HTTP_200_OK
326+
assert data["tittle"] == "updated title"
327+
assert data["content"] == "updated content"
328+
assert data["category"] == "updated_category"
329+
assert data["user_email"] == "updated_email@test.com"
330+
assert data["source_url"] == "https://updated_url.com"
331+
assert data["tags"] == "test_tag_updated"
332+
assert data["user_email_list"] == "updated_email@test.com"
333+
assert data["social_media_url"] == "https://updated_social_media_url.com"
334+
assert data["likes"] == 42
335+
assert data["publish"] is True
336+
337+
291338
@pytest.mark.asyncio
292339
async def test_news_likes_endpoint(
293340
session: AsyncSession,
@@ -325,6 +372,7 @@ async def test_news_likes_endpoint(
325372
statement = select(News).where(News.title == news_data["title"])
326373
result = await session.exec(statement)
327374
stored_news = result.first()
375+
assert stored_news is not None
328376
assert stored_news.likes == 1
329377
assert stored_news.user_email_list == f"['{encode_email(emails[0])}']"
330378

@@ -336,6 +384,7 @@ async def test_news_likes_endpoint(
336384
statement = select(News).where(News.title == news_data["title"])
337385
result = await session.exec(statement)
338386
stored_news = result.first()
387+
assert stored_news is not None
339388
assert stored_news.likes == 2
340389
assert (
341390
stored_news.user_email_list
@@ -351,6 +400,7 @@ async def test_news_likes_endpoint(
351400
statement = select(News).where(News.title == news_data["title"])
352401
result = await session.exec(statement)
353402
stored_news = result.first()
403+
assert stored_news is not None
354404
assert stored_news.likes == 1
355405
assert stored_news.user_email_list == f"['{encode_email(emails[1])}']"
356406

@@ -362,5 +412,6 @@ async def test_news_likes_endpoint(
362412
statement = select(News).where(News.title == news_data["title"])
363413
result = await session.exec(statement)
364414
stored_news = result.first()
415+
assert stored_news is not None
365416
assert stored_news.likes == 0
366417
assert stored_news.user_email_list == "[]"

0 commit comments

Comments
 (0)