Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.6.0
rev: v5.0.0
hooks:
- id: check-added-large-files
- id: check-ast
Expand All @@ -16,7 +16,7 @@ repos:
- id: mixed-line-ending
- id: requirements-txt-fixer
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.5.4
rev: v0.11.11
hooks:
- id: ruff
args: [--fix, --exclude, alembic/]
Expand Down
15 changes: 5 additions & 10 deletions api/v1/services/blog.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,7 @@ def create_blog(
db: Session,
blog: BlogCreate,
) -> BlogResponse:
"""
Create a new blog post.
"""Create a new blog post.
Args:
db (Session): The database session.
Expand Down Expand Up @@ -62,8 +61,7 @@ def list_blog(
page: int,
page_size: int,
) -> BlogListResponse:
"""
Retrieve a list of blog posts with pagination.
"""Retrieve a list of blog posts with pagination.
Args:
db (Session): The database session.
Expand Down Expand Up @@ -114,8 +112,7 @@ def read_blog(
db: Session,
id: int,
) -> BlogResponse:
"""
Retrieve a blog post by ID.
"""Retrieve a blog post by ID.
Args:
db (Session): The database session.
Expand Down Expand Up @@ -154,8 +151,7 @@ def update_blog(
id: int,
blog_update: BlogUpdate,
) -> BlogResponse:
"""
Update an existing blog post by ID.
"""Update an existing blog post by ID.
Args:
db (Session): The database session.
Expand Down Expand Up @@ -215,8 +211,7 @@ def delete_blog(
db: Session,
id: int,
) -> None:
"""
Delete a blog post by ID (soft delete).
"""Delete a blog post by ID (soft delete).
Args:
db (Session): The database session.
Expand Down
2 changes: 1 addition & 1 deletion main.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ async def get_root(request: Request) -> JSONResponse:
{
"message": "Welcome to My API",
"URL": request.url._url,
}
},
)


Expand Down
16 changes: 11 additions & 5 deletions tests/v1/blog/test_create_blog.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,9 @@ def test_create_blog_success(db_session_mock):
db_session_mock.add.side_effect = lambda x: setattr(x, "id", 1)
db_session_mock.commit.side_effect = lambda: None
db_session_mock.refresh.side_effect = lambda blog: setattr(
blog, "created_at", datetime.now(timezone.utc)
blog,
"created_at",
datetime.now(timezone.utc),
) or setattr(blog, "updated_at", datetime.now(timezone.utc))

# Creating the mock blog object
Expand All @@ -53,7 +55,9 @@ def test_create_blog_success(db_session_mock):
db_session_mock.add.side_effect = lambda x: setattr(x, "id", blog_mock.id)
db_session_mock.commit.side_effect = lambda: None
db_session_mock.refresh.side_effect = lambda x: setattr(
x, "created_at", blog_mock.created_at
x,
"created_at",
blog_mock.created_at,
) or setattr(x, "updated_at", blog_mock.updated_at)

response = client.post("/api/v1/blogs", json=new_blog_data)
Expand Down Expand Up @@ -123,7 +127,6 @@ def test_create_blog_invalid_data():

def test_create_blog_boundary_testing(db_session_mock):
"""Test maximum length constraints for title and excerpt."""

boundary_blog_data = {
"title": "T" * 255, # Maximum allowed length for title
"excerpt": "E" * 300, # Maximum allowed length for excerpt
Expand All @@ -136,7 +139,9 @@ def test_create_blog_boundary_testing(db_session_mock):
db_session_mock.add.side_effect = lambda x: setattr(x, "id", 1)
db_session_mock.commit.side_effect = lambda: None
db_session_mock.refresh.side_effect = lambda x: setattr(
x, "created_at", datetime.now(timezone.utc)
x,
"created_at",
datetime.now(timezone.utc),
) or setattr(x, "updated_at", datetime.now(timezone.utc))

response = client.post("/api/v1/blogs", json=boundary_blog_data)
Expand All @@ -150,7 +155,8 @@ def test_create_blog_boundary_testing(db_session_mock):
assert "created_at" in response_data
assert "updated_at" in response_data
assert isinstance(
response_data["created_at"], str
response_data["created_at"],
str,
) # Check if it's a string representation of a datetime
assert isinstance(response_data["updated_at"], str)

Expand Down
2 changes: 1 addition & 1 deletion tests/v1/blog/test_list_blog.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ def test_successful_retrieval_of_paginated_blog_posts(db_session_mock):
)

db_session_mock.query().filter().order_by().offset().limit().all.return_value = [
blog1
blog1,
]
db_session_mock.query().filter().order_by().count.return_value = 2

Expand Down
15 changes: 11 additions & 4 deletions tests/v1/blog/test_update_blog.py
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,9 @@ def test_update_blog_success(db_session_mock):
]
db_session_mock.commit.side_effect = lambda: None
db_session_mock.refresh.side_effect = lambda blog: setattr(
blog, "updated_at", datetime.now(timezone.utc)
blog,
"updated_at",
datetime.now(timezone.utc),
)

response = client.patch(f"/api/v1/blogs/{existing_blog.id}", json=updated_data)
Expand Down Expand Up @@ -158,7 +160,9 @@ def test_update_blog_invalid_data(db_session_mock):
]
db_session_mock.commit.side_effect = lambda: None
db_session_mock.refresh.side_effect = lambda blog: setattr(
blog, "updated_at", datetime.now(timezone.utc)
blog,
"updated_at",
datetime.now(timezone.utc),
)

response = client.patch(f"/api/v1/blogs/{existing_blog.id}", json=invalid_data)
Expand Down Expand Up @@ -190,11 +194,14 @@ def test_update_blog_boundary_testing(db_session_mock):
]
db_session_mock.commit.side_effect = lambda: None
db_session_mock.refresh.side_effect = lambda blog: setattr(
blog, "updated_at", datetime.now(timezone.utc)
blog,
"updated_at",
datetime.now(timezone.utc),
)

response = client.patch(
f"/api/v1/blogs/{existing_blog.id}", json=boundary_blog_data
f"/api/v1/blogs/{existing_blog.id}",
json=boundary_blog_data,
)

assert response.status_code == 200
Expand Down