update
This commit is contained in:
@@ -88,7 +88,7 @@ def list_prompt_history(request, task_id: int):
|
|||||||
|
|
||||||
items.append(
|
items.append(
|
||||||
(
|
(
|
||||||
user_msg.created,
|
(user_msg.created, user_msg.id),
|
||||||
{
|
{
|
||||||
"user_message_id": user_msg.id,
|
"user_message_id": user_msg.id,
|
||||||
"assistant_message_id": assistant_msg.id,
|
"assistant_message_id": assistant_msg.id,
|
||||||
@@ -104,7 +104,7 @@ def list_prompt_history(request, task_id: int):
|
|||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
return [item for _, item in sorted(items, key=lambda row: row[0], reverse=True)]
|
return [item for _, item in sorted(items, key=lambda row: row[0])]
|
||||||
|
|
||||||
|
|
||||||
@router.post("/conversations/{conversation_id}/classify")
|
@router.post("/conversations/{conversation_id}/classify")
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
|
from datetime import timedelta
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
from django.contrib.auth import get_user_model
|
from django.contrib.auth import get_user_model
|
||||||
|
from django.utils import timezone
|
||||||
from task.models import Task
|
from task.models import Task
|
||||||
from submission.models import Submission
|
from submission.models import Submission
|
||||||
from prompt.models import Conversation, Message
|
from prompt.models import Conversation, Message
|
||||||
@@ -238,6 +240,31 @@ class PromptHistoryTest(TestCase):
|
|||||||
self.assertEqual(by_source["manual"]["code_html"], "<section>card</section>")
|
self.assertEqual(by_source["manual"]["code_html"], "<section>card</section>")
|
||||||
self.assertNotIn("content", by_source["conversation"])
|
self.assertNotIn("content", by_source["conversation"])
|
||||||
|
|
||||||
|
def test_history_is_ordered_old_to_new(self):
|
||||||
|
newest_user, newest_asst = self._pair(self.user, self.task, "第三条")
|
||||||
|
oldest_user, oldest_asst = self._pair(self.user, self.task, "第一条")
|
||||||
|
middle_user, middle_asst = self._pair(self.user, self.task, "第二条")
|
||||||
|
base = timezone.now()
|
||||||
|
for offset, user_msg, asst_msg in [
|
||||||
|
(0, oldest_user, oldest_asst),
|
||||||
|
(1, middle_user, middle_asst),
|
||||||
|
(2, newest_user, newest_asst),
|
||||||
|
]:
|
||||||
|
user_created = base + timedelta(minutes=offset)
|
||||||
|
Message.objects.filter(id=user_msg.id).update(created=user_created)
|
||||||
|
Message.objects.filter(id=asst_msg.id).update(
|
||||||
|
created=user_created + timedelta(seconds=1)
|
||||||
|
)
|
||||||
|
|
||||||
|
self.client.force_login(self.user)
|
||||||
|
resp = self.client.get(f"/api/prompt/history/{self.task.id}")
|
||||||
|
|
||||||
|
self.assertEqual(resp.status_code, 200)
|
||||||
|
self.assertEqual(
|
||||||
|
[item["prompt"] for item in resp.json()],
|
||||||
|
["第一条", "第二条", "第三条"],
|
||||||
|
)
|
||||||
|
|
||||||
def test_history_is_scoped_to_current_user_and_task(self):
|
def test_history_is_scoped_to_current_user_and_task(self):
|
||||||
own_user, _ = self._pair(self.user, self.task, "自己的提示词")
|
own_user, _ = self._pair(self.user, self.task, "自己的提示词")
|
||||||
self._pair(self.other, self.task, "别人的提示词")
|
self._pair(self.other, self.task, "别人的提示词")
|
||||||
|
|||||||
Reference in New Issue
Block a user