51 lines
1.9 KiB
Python
51 lines
1.9 KiB
Python
import unittest
|
|
from src import project_manager
|
|
|
|
class TestDiscussionTakes(unittest.TestCase):
|
|
def setUp(self):
|
|
self.project_dict = project_manager.default_project("test_branching")
|
|
# Populate initial history in 'main'
|
|
self.project_dict["discussion"]["discussions"]["main"]["history"] = [
|
|
"User: Message 0",
|
|
"AI: Response 0",
|
|
"User: Message 1",
|
|
"AI: Response 1",
|
|
"User: Message 2"
|
|
]
|
|
|
|
def test_branch_discussion_creates_new_take(self):
|
|
"""Verify that branch_discussion copies history up to index and sets active."""
|
|
source_id = "main"
|
|
new_id = "take_1"
|
|
message_index = 1
|
|
|
|
# This will fail with AttributeError until implemented in project_manager.py
|
|
project_manager.branch_discussion(self.project_dict, source_id, new_id, message_index)
|
|
|
|
# Asserts
|
|
self.assertIn(new_id, self.project_dict["discussion"]["discussions"])
|
|
new_history = self.project_dict["discussion"]["discussions"][new_id]["history"]
|
|
self.assertEqual(len(new_history), 2)
|
|
self.assertEqual(new_history[0], "User: Message 0")
|
|
self.assertEqual(new_history[1], "AI: Response 0")
|
|
self.assertEqual(self.project_dict["discussion"]["active"], new_id)
|
|
|
|
def test_promote_take_renames_discussion(self):
|
|
"""Verify that promote_take renames a discussion key."""
|
|
take_id = "take_experimental"
|
|
self.project_dict["discussion"]["discussions"][take_id] = project_manager.default_discussion()
|
|
self.project_dict["discussion"]["discussions"][take_id]["history"] = ["User: Experimental"]
|
|
|
|
new_id = "feature_refined"
|
|
|
|
# This will fail with AttributeError until implemented in project_manager.py
|
|
project_manager.promote_take(self.project_dict, take_id, new_id)
|
|
|
|
# Asserts
|
|
self.assertNotIn(take_id, self.project_dict["discussion"]["discussions"])
|
|
self.assertIn(new_id, self.project_dict["discussion"]["discussions"])
|
|
self.assertEqual(self.project_dict["discussion"]["discussions"][new_id]["history"], ["User: Experimental"])
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|