This commit is contained in:
2026-03-04 19:33:47 +03:00
parent 42def69dcc
commit 2820e491d5
28 changed files with 972 additions and 365 deletions

View File

@@ -13,7 +13,7 @@ from unittest.mock import patch
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from src.models.mapping import Base
from src.models.mapping import Base, Environment
from src.models.task import TaskRecord
from src.core.task_manager.persistence import TaskPersistenceService
from src.core.task_manager.models import Task, TaskStatus, LogEntry
@@ -138,6 +138,7 @@ class TestTaskPersistenceService:
def setup_method(self):
session = self.TestSessionLocal()
session.query(TaskRecord).delete()
session.query(Environment).delete()
session.commit()
session.close()
# [/DEF:setup_method:Function]
@@ -402,5 +403,29 @@ class TestTaskPersistenceService:
assert record.params["name"] == "test"
# [/DEF:test_persist_task_with_datetime_in_params:Function]
# [DEF:test_persist_task_resolves_environment_slug_to_existing_id:Function]
# @PURPOSE: Ensure slug-like environment token resolves to environments.id before persisting task.
# @PRE: environments table contains env with name convertible to provided slug token.
# @POST: task_records.environment_id stores actual environments.id and does not violate FK.
def test_persist_task_resolves_environment_slug_to_existing_id(self):
session = self.TestSessionLocal()
env = Environment(id="env-uuid-1", name="SS DEV", url="https://example.local", credentials_id="cred-1")
session.add(env)
session.commit()
session.close()
task = self._make_task(params={"environment_id": "ss-dev"})
with self._patched():
self.service.persist_task(task)
session = self.TestSessionLocal()
record = session.query(TaskRecord).filter_by(id="test-uuid-1").first()
session.close()
assert record is not None
assert record.environment_id == "env-uuid-1"
# [/DEF:test_persist_task_resolves_environment_slug_to_existing_id:Function]
# [/DEF:TestTaskPersistenceService:Class]
# [/DEF:test_task_persistence:Module]