创建中心任务的管理系统
This commit is contained in:
109
tasks/tests/test_models.py
Normal file
109
tasks/tests/test_models.py
Normal file
@@ -0,0 +1,109 @@
|
||||
from django.test import TestCase
|
||||
from django.utils import timezone
|
||||
from tasks.models import Client, Task, TaskResult
|
||||
|
||||
class ClientModelTest(TestCase):
|
||||
def test_client_creation(self):
|
||||
"""Test that a client can be created with all required fields"""
|
||||
client = Client.objects.create(
|
||||
name="test_client",
|
||||
token="test_token_12345"
|
||||
)
|
||||
|
||||
self.assertEqual(client.name, "test_client")
|
||||
self.assertEqual(client.token, "test_token_12345")
|
||||
self.assertIsNotNone(client.created_at)
|
||||
self.assertIsNotNone(client.last_seen)
|
||||
|
||||
def test_client_str(self):
|
||||
"""Test that the client string representation is correct"""
|
||||
client = Client.objects.create(
|
||||
name="test_client",
|
||||
token="test_token_12345"
|
||||
)
|
||||
|
||||
self.assertEqual(str(client), "test_client")
|
||||
|
||||
class TaskModelTest(TestCase):
|
||||
def test_task_creation(self):
|
||||
"""Test that a task can be created with all required fields"""
|
||||
task = Task.objects.create(
|
||||
name="test_task",
|
||||
client_name="test_client",
|
||||
script="echo 'Hello World'",
|
||||
timeout_seconds=3600
|
||||
)
|
||||
|
||||
self.assertEqual(task.name, "test_task")
|
||||
self.assertEqual(task.client_name, "test_client")
|
||||
self.assertEqual(task.script, "echo 'Hello World'")
|
||||
self.assertEqual(task.status, "pending")
|
||||
self.assertEqual(task.timeout_seconds, 3600)
|
||||
self.assertIsNotNone(task.created_at)
|
||||
self.assertIsNotNone(task.updated_at)
|
||||
|
||||
def test_task_str(self):
|
||||
"""Test that the task string representation is correct"""
|
||||
task = Task.objects.create(
|
||||
name="test_task"
|
||||
)
|
||||
|
||||
self.assertEqual(str(task), "test_task")
|
||||
|
||||
def test_task_status_choices(self):
|
||||
"""Test that task status choices are correctly implemented"""
|
||||
from tasks.models import STATUS_CHOICES
|
||||
status_choices = [choice[0] for choice in STATUS_CHOICES]
|
||||
|
||||
self.assertIn("pending", status_choices)
|
||||
self.assertIn("assigned", status_choices)
|
||||
self.assertIn("running", status_choices)
|
||||
self.assertIn("success", status_choices)
|
||||
self.assertIn("failed", status_choices)
|
||||
self.assertIn("retrying", status_choices)
|
||||
self.assertIn("timeout", status_choices)
|
||||
|
||||
class TaskResultModelTest(TestCase):
|
||||
def test_task_result_creation(self):
|
||||
"""Test that a task result can be created with all required fields"""
|
||||
client = Client.objects.create(
|
||||
name="test_client",
|
||||
token="test_token_12345"
|
||||
)
|
||||
|
||||
task = Task.objects.create(
|
||||
name="test_task"
|
||||
)
|
||||
|
||||
result = TaskResult.objects.create(
|
||||
task=task,
|
||||
client=client,
|
||||
status="success",
|
||||
message="Task completed successfully"
|
||||
)
|
||||
|
||||
self.assertEqual(result.task, task)
|
||||
self.assertEqual(result.client, client)
|
||||
self.assertEqual(result.status, "success")
|
||||
self.assertEqual(result.message, "Task completed successfully")
|
||||
self.assertIsNotNone(result.created_at)
|
||||
|
||||
def test_task_result_str(self):
|
||||
"""Test that the task result string representation is correct"""
|
||||
client = Client.objects.create(
|
||||
name="test_client",
|
||||
token="test_token_12345"
|
||||
)
|
||||
|
||||
task = Task.objects.create(
|
||||
name="test_task"
|
||||
)
|
||||
|
||||
result = TaskResult.objects.create(
|
||||
task=task,
|
||||
client=client,
|
||||
status="success"
|
||||
)
|
||||
|
||||
# Expected status display is in Chinese
|
||||
self.assertEqual(str(result), f"{task.name} - {client.name} - 成功")
|
||||
Reference in New Issue
Block a user