re-structure

This commit is contained in:
Yaojia Wang
2026-02-01 22:55:31 +01:00
parent 400b12a967
commit b602d0a340
176 changed files with 856 additions and 853 deletions

View File

@@ -27,7 +27,7 @@ class TestTrainingDatasetModel:
def test_training_dataset_has_training_status_field(self):
"""TrainingDataset model should have training_status field."""
from inference.data.admin_models import TrainingDataset
from backend.data.admin_models import TrainingDataset
dataset = TrainingDataset(
name="test-dataset",
@@ -37,7 +37,7 @@ class TestTrainingDatasetModel:
def test_training_dataset_has_active_training_task_id_field(self):
"""TrainingDataset model should have active_training_task_id field."""
from inference.data.admin_models import TrainingDataset
from backend.data.admin_models import TrainingDataset
task_id = uuid4()
dataset = TrainingDataset(
@@ -48,7 +48,7 @@ class TestTrainingDatasetModel:
def test_training_dataset_defaults(self):
"""TrainingDataset should have correct defaults for new fields."""
from inference.data.admin_models import TrainingDataset
from backend.data.admin_models import TrainingDataset
dataset = TrainingDataset(name="test-dataset")
assert dataset.training_status is None
@@ -71,7 +71,7 @@ class TestDatasetRepositoryTrainingStatus:
def test_update_training_status_sets_status(self, mock_session):
"""update_training_status should set training_status."""
from inference.data.admin_models import TrainingDataset
from backend.data.admin_models import TrainingDataset
dataset_id = uuid4()
dataset = TrainingDataset(
@@ -81,10 +81,10 @@ class TestDatasetRepositoryTrainingStatus:
)
mock_session.get.return_value = dataset
with patch("inference.data.repositories.dataset_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.dataset_repository.get_session_context") as mock_ctx:
mock_ctx.return_value.__enter__.return_value = mock_session
from inference.data.repositories import DatasetRepository
from backend.data.repositories import DatasetRepository
repo = DatasetRepository()
repo.update_training_status(
@@ -98,7 +98,7 @@ class TestDatasetRepositoryTrainingStatus:
def test_update_training_status_sets_task_id(self, mock_session):
"""update_training_status should set active_training_task_id."""
from inference.data.admin_models import TrainingDataset
from backend.data.admin_models import TrainingDataset
dataset_id = uuid4()
task_id = uuid4()
@@ -109,10 +109,10 @@ class TestDatasetRepositoryTrainingStatus:
)
mock_session.get.return_value = dataset
with patch("inference.data.repositories.dataset_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.dataset_repository.get_session_context") as mock_ctx:
mock_ctx.return_value.__enter__.return_value = mock_session
from inference.data.repositories import DatasetRepository
from backend.data.repositories import DatasetRepository
repo = DatasetRepository()
repo.update_training_status(
@@ -127,7 +127,7 @@ class TestDatasetRepositoryTrainingStatus:
self, mock_session
):
"""update_training_status should update main status to 'trained' when completed."""
from inference.data.admin_models import TrainingDataset
from backend.data.admin_models import TrainingDataset
dataset_id = uuid4()
dataset = TrainingDataset(
@@ -137,10 +137,10 @@ class TestDatasetRepositoryTrainingStatus:
)
mock_session.get.return_value = dataset
with patch("inference.data.repositories.dataset_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.dataset_repository.get_session_context") as mock_ctx:
mock_ctx.return_value.__enter__.return_value = mock_session
from inference.data.repositories import DatasetRepository
from backend.data.repositories import DatasetRepository
repo = DatasetRepository()
repo.update_training_status(
@@ -156,7 +156,7 @@ class TestDatasetRepositoryTrainingStatus:
self, mock_session
):
"""update_training_status should clear task_id when training completes."""
from inference.data.admin_models import TrainingDataset
from backend.data.admin_models import TrainingDataset
dataset_id = uuid4()
task_id = uuid4()
@@ -169,10 +169,10 @@ class TestDatasetRepositoryTrainingStatus:
)
mock_session.get.return_value = dataset
with patch("inference.data.repositories.dataset_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.dataset_repository.get_session_context") as mock_ctx:
mock_ctx.return_value.__enter__.return_value = mock_session
from inference.data.repositories import DatasetRepository
from backend.data.repositories import DatasetRepository
repo = DatasetRepository()
repo.update_training_status(
@@ -187,10 +187,10 @@ class TestDatasetRepositoryTrainingStatus:
"""update_training_status should handle missing dataset gracefully."""
mock_session.get.return_value = None
with patch("inference.data.repositories.dataset_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.dataset_repository.get_session_context") as mock_ctx:
mock_ctx.return_value.__enter__.return_value = mock_session
from inference.data.repositories import DatasetRepository
from backend.data.repositories import DatasetRepository
repo = DatasetRepository()
# Should not raise
@@ -213,7 +213,7 @@ class TestDatasetDetailResponseTrainingStatus:
def test_dataset_detail_response_includes_training_status(self):
"""DatasetDetailResponse schema should include training_status field."""
from inference.web.schemas.admin.datasets import DatasetDetailResponse
from backend.web.schemas.admin.datasets import DatasetDetailResponse
response = DatasetDetailResponse(
dataset_id=str(uuid4()),
@@ -240,7 +240,7 @@ class TestDatasetDetailResponseTrainingStatus:
def test_dataset_detail_response_allows_null_training_status(self):
"""DatasetDetailResponse should allow null training_status."""
from inference.web.schemas.admin.datasets import DatasetDetailResponse
from backend.web.schemas.admin.datasets import DatasetDetailResponse
response = DatasetDetailResponse(
dataset_id=str(uuid4()),
@@ -294,7 +294,7 @@ class TestSchedulerDatasetStatusUpdates:
def test_scheduler_sets_running_status_on_task_start(self, mock_datasets_repo, mock_training_tasks_repo):
"""Scheduler should set dataset training_status to 'running' when task starts."""
from inference.web.core.scheduler import TrainingScheduler
from backend.web.core.scheduler import TrainingScheduler
with patch.object(TrainingScheduler, "_run_yolo_training") as mock_train:
mock_train.return_value = {"model_path": "/path/to/model.pt", "metrics": {}}
@@ -333,35 +333,35 @@ class TestDatasetStatusValues:
def test_dataset_status_building(self):
"""Dataset can have status 'building'."""
from inference.data.admin_models import TrainingDataset
from backend.data.admin_models import TrainingDataset
dataset = TrainingDataset(name="test", status="building")
assert dataset.status == "building"
def test_dataset_status_ready(self):
"""Dataset can have status 'ready'."""
from inference.data.admin_models import TrainingDataset
from backend.data.admin_models import TrainingDataset
dataset = TrainingDataset(name="test", status="ready")
assert dataset.status == "ready"
def test_dataset_status_trained(self):
"""Dataset can have status 'trained'."""
from inference.data.admin_models import TrainingDataset
from backend.data.admin_models import TrainingDataset
dataset = TrainingDataset(name="test", status="trained")
assert dataset.status == "trained"
def test_dataset_status_failed(self):
"""Dataset can have status 'failed'."""
from inference.data.admin_models import TrainingDataset
from backend.data.admin_models import TrainingDataset
dataset = TrainingDataset(name="test", status="failed")
assert dataset.status == "failed"
def test_training_status_values(self):
"""Training status can have various values."""
from inference.data.admin_models import TrainingDataset
from backend.data.admin_models import TrainingDataset
valid_statuses = ["pending", "scheduled", "running", "completed", "failed", "cancelled"]
for status in valid_statuses: