Refactor code structure for improved readability and maintainability

This commit is contained in:
JSC
2025-08-29 15:27:12 +02:00
parent dc89e45675
commit 2bdd109492
23 changed files with 652 additions and 719 deletions

View File

@@ -1,7 +1,7 @@
"""Tests for scheduled task model."""
import uuid
from datetime import datetime, timedelta
from datetime import UTC, datetime, timedelta
from app.models.scheduled_task import (
RecurrenceType,
@@ -19,7 +19,7 @@ class TestScheduledTaskModel:
task = ScheduledTask(
name="Test Task",
task_type=TaskType.CREDIT_RECHARGE,
scheduled_at=datetime.utcnow() + timedelta(hours=1),
scheduled_at=datetime.now(tz=UTC) + timedelta(hours=1),
)
assert task.name == "Test Task"
@@ -38,7 +38,7 @@ class TestScheduledTaskModel:
task = ScheduledTask(
name="User Task",
task_type=TaskType.PLAY_SOUND,
scheduled_at=datetime.utcnow() + timedelta(hours=1),
scheduled_at=datetime.now(tz=UTC) + timedelta(hours=1),
user_id=user_id,
)
@@ -50,7 +50,7 @@ class TestScheduledTaskModel:
task = ScheduledTask(
name="System Task",
task_type=TaskType.CREDIT_RECHARGE,
scheduled_at=datetime.utcnow() + timedelta(hours=1),
scheduled_at=datetime.now(tz=UTC) + timedelta(hours=1),
)
assert task.user_id is None
@@ -61,7 +61,7 @@ class TestScheduledTaskModel:
task = ScheduledTask(
name="Recurring Task",
task_type=TaskType.CREDIT_RECHARGE,
scheduled_at=datetime.utcnow() + timedelta(hours=1),
scheduled_at=datetime.now(tz=UTC) + timedelta(hours=1),
recurrence_type=RecurrenceType.DAILY,
recurrence_count=5,
)
@@ -74,7 +74,7 @@ class TestScheduledTaskModel:
task = ScheduledTask(
name="One-shot Task",
task_type=TaskType.PLAY_SOUND,
scheduled_at=datetime.utcnow() + timedelta(hours=1),
scheduled_at=datetime.now(tz=UTC) + timedelta(hours=1),
recurrence_type=RecurrenceType.NONE,
)
@@ -86,7 +86,7 @@ class TestScheduledTaskModel:
task = ScheduledTask(
name="Infinite Task",
task_type=TaskType.CREDIT_RECHARGE,
scheduled_at=datetime.utcnow() + timedelta(hours=1),
scheduled_at=datetime.now(tz=UTC) + timedelta(hours=1),
recurrence_type=RecurrenceType.DAILY,
recurrence_count=None, # Infinite
)
@@ -103,7 +103,7 @@ class TestScheduledTaskModel:
task = ScheduledTask(
name="Limited Task",
task_type=TaskType.CREDIT_RECHARGE,
scheduled_at=datetime.utcnow() + timedelta(hours=1),
scheduled_at=datetime.now(tz=UTC) + timedelta(hours=1),
recurrence_type=RecurrenceType.DAILY,
recurrence_count=3,
)
@@ -120,21 +120,21 @@ class TestScheduledTaskModel:
def test_task_expiration(self):
"""Test task expiration."""
# Non-expired task
# Non-expired task (using naive UTC datetimes)
task = ScheduledTask(
name="Valid Task",
task_type=TaskType.CREDIT_RECHARGE,
scheduled_at=datetime.utcnow() + timedelta(hours=1),
expires_at=datetime.utcnow() + timedelta(hours=2),
scheduled_at=datetime.now(tz=UTC).replace(tzinfo=None) + timedelta(hours=1),
expires_at=datetime.now(tz=UTC).replace(tzinfo=None) + timedelta(hours=2),
)
assert not task.is_expired()
# Expired task
# Expired task (using naive UTC datetimes)
expired_task = ScheduledTask(
name="Expired Task",
task_type=TaskType.CREDIT_RECHARGE,
scheduled_at=datetime.utcnow() + timedelta(hours=1),
expires_at=datetime.utcnow() - timedelta(hours=1),
scheduled_at=datetime.now(tz=UTC).replace(tzinfo=None) + timedelta(hours=1),
expires_at=datetime.now(tz=UTC).replace(tzinfo=None) - timedelta(hours=1),
)
assert expired_task.is_expired()
@@ -142,7 +142,7 @@ class TestScheduledTaskModel:
no_expiry_task = ScheduledTask(
name="No Expiry Task",
task_type=TaskType.CREDIT_RECHARGE,
scheduled_at=datetime.utcnow() + timedelta(hours=1),
scheduled_at=datetime.now(tz=UTC) + timedelta(hours=1),
)
assert not no_expiry_task.is_expired()
@@ -157,7 +157,7 @@ class TestScheduledTaskModel:
task = ScheduledTask(
name="Parametrized Task",
task_type=TaskType.PLAY_SOUND,
scheduled_at=datetime.utcnow() + timedelta(hours=1),
scheduled_at=datetime.now(tz=UTC) + timedelta(hours=1),
parameters=parameters,
)
@@ -171,7 +171,7 @@ class TestScheduledTaskModel:
task = ScheduledTask(
name="NY Task",
task_type=TaskType.CREDIT_RECHARGE,
scheduled_at=datetime.utcnow() + timedelta(hours=1),
scheduled_at=datetime.now(tz=UTC) + timedelta(hours=1),
timezone="America/New_York",
)
@@ -184,7 +184,7 @@ class TestScheduledTaskModel:
task = ScheduledTask(
name="Cron Task",
task_type=TaskType.CREDIT_RECHARGE,
scheduled_at=datetime.utcnow() + timedelta(hours=1),
scheduled_at=datetime.now(tz=UTC) + timedelta(hours=1),
recurrence_type=RecurrenceType.CRON,
cron_expression=cron_expr,
)