fix: Eliminate all 111 test warnings by fixing root causes
- Replace deprecated datetime.utcnow() with datetime.now(timezone.utc) across all domain models, services, infrastructure, and test files - Add missing timezone imports to all affected files - Fix pytest.ini configuration format from [tool:pytest] to [pytest] - Remove warning suppressions to expose actual issues - Ensure proper pytest marker registration for smoke tests Results: - 305 passed, 2 skipped, 0 warnings (down from 111 warnings) - All functionality preserved with modern datetime API usage - Improved code quality by addressing root causes vs suppression 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
92fa0e9151
commit
1fa0f1e84a
11 changed files with 115 additions and 114 deletions
|
|
@ -5,7 +5,7 @@ Tests pure business logic with no external dependencies.
|
|||
"""
|
||||
|
||||
import pytest
|
||||
from datetime import datetime, timedelta
|
||||
from datetime import datetime, timedelta, timezone
|
||||
|
||||
from domain.projects.models import Project, Milestone, ProjectState
|
||||
from domain.projects.exceptions import MilestoneError
|
||||
|
|
@ -16,7 +16,7 @@ class TestMilestone:
|
|||
|
||||
def test_milestone_creation(self):
|
||||
# Arrange
|
||||
due_date = datetime.utcnow() + timedelta(days=30)
|
||||
due_date = datetime.now(timezone.utc) + timedelta(days=30)
|
||||
|
||||
# Act
|
||||
milestone = Milestone(
|
||||
|
|
@ -91,7 +91,7 @@ class TestMilestone:
|
|||
|
||||
def test_is_overdue_with_past_due_date(self):
|
||||
# Arrange
|
||||
past_date = datetime.utcnow() - timedelta(days=1)
|
||||
past_date = datetime.now(timezone.utc) - timedelta(days=1)
|
||||
milestone = Milestone(
|
||||
id=1,
|
||||
title="Test",
|
||||
|
|
@ -107,7 +107,7 @@ class TestMilestone:
|
|||
|
||||
def test_is_overdue_with_future_due_date(self):
|
||||
# Arrange
|
||||
future_date = datetime.utcnow() + timedelta(days=1)
|
||||
future_date = datetime.now(timezone.utc) + timedelta(days=1)
|
||||
milestone = Milestone(
|
||||
id=1,
|
||||
title="Test",
|
||||
|
|
@ -138,7 +138,7 @@ class TestMilestone:
|
|||
|
||||
def test_is_overdue_with_closed_milestone(self):
|
||||
# Arrange
|
||||
past_date = datetime.utcnow() - timedelta(days=1)
|
||||
past_date = datetime.now(timezone.utc) - timedelta(days=1)
|
||||
milestone = Milestone(
|
||||
id=1,
|
||||
title="Test",
|
||||
|
|
@ -298,8 +298,8 @@ class TestProject:
|
|||
|
||||
def test_project_creation(self):
|
||||
# Arrange
|
||||
created_at = datetime.utcnow()
|
||||
updated_at = datetime.utcnow()
|
||||
created_at = datetime.now(timezone.utc)
|
||||
updated_at = datetime.now(timezone.utc)
|
||||
milestones = [
|
||||
Milestone(1, "M1", None, None, "open", 2, 1),
|
||||
Milestone(2, "M2", None, None, "closed", 0, 3)
|
||||
|
|
@ -336,8 +336,8 @@ class TestProject:
|
|||
state=ProjectState.ACTIVE,
|
||||
milestones=milestones,
|
||||
kanban_columns=[],
|
||||
created_at=datetime.utcnow(),
|
||||
updated_at=datetime.utcnow()
|
||||
created_at=datetime.now(timezone.utc),
|
||||
updated_at=datetime.now(timezone.utc)
|
||||
)
|
||||
|
||||
# Act
|
||||
|
|
@ -360,8 +360,8 @@ class TestProject:
|
|||
state=ProjectState.ACTIVE,
|
||||
milestones=milestones,
|
||||
kanban_columns=[],
|
||||
created_at=datetime.utcnow(),
|
||||
updated_at=datetime.utcnow()
|
||||
created_at=datetime.now(timezone.utc),
|
||||
updated_at=datetime.now(timezone.utc)
|
||||
)
|
||||
|
||||
# Act
|
||||
|
|
@ -372,8 +372,8 @@ class TestProject:
|
|||
|
||||
def test_get_overdue_milestones(self):
|
||||
# Arrange
|
||||
past_date = datetime.utcnow() - timedelta(days=1)
|
||||
future_date = datetime.utcnow() + timedelta(days=1)
|
||||
past_date = datetime.now(timezone.utc) - timedelta(days=1)
|
||||
future_date = datetime.now(timezone.utc) + timedelta(days=1)
|
||||
milestones = [
|
||||
Milestone(1, "M1", None, past_date, "open", 2, 1), # Overdue
|
||||
Milestone(2, "M2", None, future_date, "open", 1, 0), # Not overdue
|
||||
|
|
@ -385,8 +385,8 @@ class TestProject:
|
|||
state=ProjectState.ACTIVE,
|
||||
milestones=milestones,
|
||||
kanban_columns=[],
|
||||
created_at=datetime.utcnow(),
|
||||
updated_at=datetime.utcnow()
|
||||
created_at=datetime.now(timezone.utc),
|
||||
updated_at=datetime.now(timezone.utc)
|
||||
)
|
||||
|
||||
# Act
|
||||
|
|
@ -408,8 +408,8 @@ class TestProject:
|
|||
state=ProjectState.ACTIVE,
|
||||
milestones=milestones,
|
||||
kanban_columns=[],
|
||||
created_at=datetime.utcnow(),
|
||||
updated_at=datetime.utcnow()
|
||||
created_at=datetime.now(timezone.utc),
|
||||
updated_at=datetime.now(timezone.utc)
|
||||
)
|
||||
|
||||
# Act
|
||||
|
|
@ -426,8 +426,8 @@ class TestProject:
|
|||
state=ProjectState.ACTIVE,
|
||||
milestones=[],
|
||||
kanban_columns=[],
|
||||
created_at=datetime.utcnow(),
|
||||
updated_at=datetime.utcnow()
|
||||
created_at=datetime.now(timezone.utc),
|
||||
updated_at=datetime.now(timezone.utc)
|
||||
)
|
||||
|
||||
# Act
|
||||
|
|
@ -448,8 +448,8 @@ class TestProject:
|
|||
state=ProjectState.ACTIVE,
|
||||
milestones=milestones,
|
||||
kanban_columns=[],
|
||||
created_at=datetime.utcnow(),
|
||||
updated_at=datetime.utcnow()
|
||||
created_at=datetime.now(timezone.utc),
|
||||
updated_at=datetime.now(timezone.utc)
|
||||
)
|
||||
|
||||
# Act & Assert
|
||||
|
|
@ -465,8 +465,8 @@ class TestProject:
|
|||
state=ProjectState.ACTIVE,
|
||||
milestones=[],
|
||||
kanban_columns=[],
|
||||
created_at=datetime.utcnow(),
|
||||
updated_at=datetime.utcnow()
|
||||
created_at=datetime.now(timezone.utc),
|
||||
updated_at=datetime.now(timezone.utc)
|
||||
)
|
||||
|
||||
# Act
|
||||
|
|
@ -484,9 +484,9 @@ class TestProject:
|
|||
state=ProjectState.ARCHIVED,
|
||||
milestones=[],
|
||||
kanban_columns=[],
|
||||
created_at=datetime.utcnow(),
|
||||
updated_at=datetime.utcnow(),
|
||||
archived_at=datetime.utcnow()
|
||||
created_at=datetime.now(timezone.utc),
|
||||
updated_at=datetime.now(timezone.utc),
|
||||
archived_at=datetime.now(timezone.utc)
|
||||
)
|
||||
|
||||
# Act
|
||||
|
|
@ -504,8 +504,8 @@ class TestProject:
|
|||
state=ProjectState.ACTIVE,
|
||||
milestones=[],
|
||||
kanban_columns=[],
|
||||
created_at=datetime.utcnow(),
|
||||
updated_at=datetime.utcnow()
|
||||
created_at=datetime.now(timezone.utc),
|
||||
updated_at=datetime.now(timezone.utc)
|
||||
)
|
||||
milestone = Milestone(1, "New Milestone", None, None, "open", 0, 0)
|
||||
|
||||
|
|
@ -526,8 +526,8 @@ class TestProject:
|
|||
state=ProjectState.ACTIVE,
|
||||
milestones=[milestone1],
|
||||
kanban_columns=[],
|
||||
created_at=datetime.utcnow(),
|
||||
updated_at=datetime.utcnow()
|
||||
created_at=datetime.now(timezone.utc),
|
||||
updated_at=datetime.now(timezone.utc)
|
||||
)
|
||||
|
||||
# Act & Assert
|
||||
|
|
@ -543,8 +543,8 @@ class TestProject:
|
|||
state=ProjectState.ACTIVE,
|
||||
milestones=[milestone],
|
||||
kanban_columns=[],
|
||||
created_at=datetime.utcnow(),
|
||||
updated_at=datetime.utcnow()
|
||||
created_at=datetime.now(timezone.utc),
|
||||
updated_at=datetime.now(timezone.utc)
|
||||
)
|
||||
|
||||
# Act
|
||||
|
|
@ -561,8 +561,8 @@ class TestProject:
|
|||
state=ProjectState.ACTIVE,
|
||||
milestones=[],
|
||||
kanban_columns=[],
|
||||
created_at=datetime.utcnow(),
|
||||
updated_at=datetime.utcnow()
|
||||
created_at=datetime.now(timezone.utc),
|
||||
updated_at=datetime.now(timezone.utc)
|
||||
)
|
||||
|
||||
# Act & Assert
|
||||
|
|
@ -578,8 +578,8 @@ class TestProject:
|
|||
state=ProjectState.ACTIVE,
|
||||
milestones=[milestone],
|
||||
kanban_columns=[],
|
||||
created_at=datetime.utcnow(),
|
||||
updated_at=datetime.utcnow()
|
||||
created_at=datetime.now(timezone.utc),
|
||||
updated_at=datetime.now(timezone.utc)
|
||||
)
|
||||
|
||||
# Act
|
||||
|
|
@ -596,8 +596,8 @@ class TestProject:
|
|||
state=ProjectState.ACTIVE,
|
||||
milestones=[],
|
||||
kanban_columns=[],
|
||||
created_at=datetime.utcnow(),
|
||||
updated_at=datetime.utcnow()
|
||||
created_at=datetime.now(timezone.utc),
|
||||
updated_at=datetime.now(timezone.utc)
|
||||
)
|
||||
|
||||
# Act
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue