Refactor code structure for improved readability and maintainability
This commit is contained in:
@@ -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,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user