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

@@ -9,8 +9,8 @@ from datetime import datetime, timezone
from unittest.mock import MagicMock, patch
from uuid import uuid4, UUID
from inference.data.admin_models import ModelVersion
from inference.data.repositories.model_version_repository import ModelVersionRepository
from backend.data.admin_models import ModelVersion
from backend.data.repositories.model_version_repository import ModelVersionRepository
class TestModelVersionRepository:
@@ -62,7 +62,7 @@ class TestModelVersionRepository:
def test_create_returns_model(self, repo):
"""Test create returns created model version."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)
mock_ctx.return_value.__exit__ = MagicMock(return_value=False)
@@ -82,7 +82,7 @@ class TestModelVersionRepository:
dataset_id = uuid4()
trained_at = datetime.now(timezone.utc)
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)
mock_ctx.return_value.__exit__ = MagicMock(return_value=False)
@@ -115,7 +115,7 @@ class TestModelVersionRepository:
task_id = uuid4()
dataset_id = uuid4()
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)
mock_ctx.return_value.__exit__ = MagicMock(return_value=False)
@@ -134,7 +134,7 @@ class TestModelVersionRepository:
def test_create_without_optional_ids(self, repo):
"""Test create without task_id and dataset_id."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)
mock_ctx.return_value.__exit__ = MagicMock(return_value=False)
@@ -155,7 +155,7 @@ class TestModelVersionRepository:
def test_get_returns_model(self, repo, sample_model):
"""Test get returns model when exists."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.get.return_value = sample_model
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)
@@ -169,7 +169,7 @@ class TestModelVersionRepository:
def test_get_with_uuid(self, repo, sample_model):
"""Test get works with UUID object."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.get.return_value = sample_model
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)
@@ -181,7 +181,7 @@ class TestModelVersionRepository:
def test_get_returns_none_when_not_found(self, repo):
"""Test get returns None when model not found."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.get.return_value = None
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)
@@ -198,7 +198,7 @@ class TestModelVersionRepository:
def test_get_paginated_returns_models_and_total(self, repo, sample_model):
"""Test get_paginated returns list of models and total count."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.exec.return_value.one.return_value = 1
mock_session.exec.return_value.all.return_value = [sample_model]
@@ -212,7 +212,7 @@ class TestModelVersionRepository:
def test_get_paginated_with_status_filter(self, repo, sample_model):
"""Test get_paginated filters by status."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.exec.return_value.one.return_value = 1
mock_session.exec.return_value.all.return_value = [sample_model]
@@ -225,7 +225,7 @@ class TestModelVersionRepository:
def test_get_paginated_with_pagination(self, repo, sample_model):
"""Test get_paginated with limit and offset."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.exec.return_value.one.return_value = 50
mock_session.exec.return_value.all.return_value = [sample_model]
@@ -238,7 +238,7 @@ class TestModelVersionRepository:
def test_get_paginated_empty_results(self, repo):
"""Test get_paginated with no results."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.exec.return_value.one.return_value = 0
mock_session.exec.return_value.all.return_value = []
@@ -256,7 +256,7 @@ class TestModelVersionRepository:
def test_get_active_returns_active_model(self, repo, active_model):
"""Test get_active returns the active model."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.exec.return_value.first.return_value = active_model
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)
@@ -270,7 +270,7 @@ class TestModelVersionRepository:
def test_get_active_returns_none(self, repo):
"""Test get_active returns None when no active model."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.exec.return_value.first.return_value = None
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)
@@ -287,7 +287,7 @@ class TestModelVersionRepository:
def test_activate_activates_model(self, repo, sample_model, active_model):
"""Test activate sets model as active and deactivates others."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.exec.return_value.all.return_value = [active_model]
mock_session.get.return_value = sample_model
@@ -304,7 +304,7 @@ class TestModelVersionRepository:
def test_activate_with_uuid(self, repo, sample_model):
"""Test activate works with UUID object."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.exec.return_value.all.return_value = []
mock_session.get.return_value = sample_model
@@ -318,7 +318,7 @@ class TestModelVersionRepository:
def test_activate_returns_none_when_not_found(self, repo):
"""Test activate returns None when model not found."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.exec.return_value.all.return_value = []
mock_session.get.return_value = None
@@ -332,7 +332,7 @@ class TestModelVersionRepository:
def test_activate_sets_activated_at(self, repo, sample_model):
"""Test activate sets activated_at timestamp."""
sample_model.activated_at = None
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.exec.return_value.all.return_value = []
mock_session.get.return_value = sample_model
@@ -349,7 +349,7 @@ class TestModelVersionRepository:
def test_deactivate_deactivates_model(self, repo, active_model):
"""Test deactivate sets model as inactive."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.get.return_value = active_model
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)
@@ -364,7 +364,7 @@ class TestModelVersionRepository:
def test_deactivate_with_uuid(self, repo, active_model):
"""Test deactivate works with UUID object."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.get.return_value = active_model
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)
@@ -376,7 +376,7 @@ class TestModelVersionRepository:
def test_deactivate_returns_none_when_not_found(self, repo):
"""Test deactivate returns None when model not found."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.get.return_value = None
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)
@@ -392,7 +392,7 @@ class TestModelVersionRepository:
def test_update_updates_model(self, repo, sample_model):
"""Test update updates model metadata."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.get.return_value = sample_model
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)
@@ -409,7 +409,7 @@ class TestModelVersionRepository:
def test_update_all_fields(self, repo, sample_model):
"""Test update can update all fields."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.get.return_value = sample_model
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)
@@ -428,7 +428,7 @@ class TestModelVersionRepository:
def test_update_with_uuid(self, repo, sample_model):
"""Test update works with UUID object."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.get.return_value = sample_model
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)
@@ -440,7 +440,7 @@ class TestModelVersionRepository:
def test_update_returns_none_when_not_found(self, repo):
"""Test update returns None when model not found."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.get.return_value = None
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)
@@ -453,7 +453,7 @@ class TestModelVersionRepository:
def test_update_partial_fields(self, repo, sample_model):
"""Test update only updates provided fields."""
original_name = sample_model.name
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.get.return_value = sample_model
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)
@@ -474,7 +474,7 @@ class TestModelVersionRepository:
def test_archive_archives_model(self, repo, sample_model):
"""Test archive sets model status to archived."""
sample_model.is_active = False
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.get.return_value = sample_model
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)
@@ -489,7 +489,7 @@ class TestModelVersionRepository:
def test_archive_with_uuid(self, repo, sample_model):
"""Test archive works with UUID object."""
sample_model.is_active = False
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.get.return_value = sample_model
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)
@@ -501,7 +501,7 @@ class TestModelVersionRepository:
def test_archive_returns_none_when_not_found(self, repo):
"""Test archive returns None when model not found."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.get.return_value = None
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)
@@ -513,7 +513,7 @@ class TestModelVersionRepository:
def test_archive_returns_none_when_active(self, repo, active_model):
"""Test archive returns None when model is active."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.get.return_value = active_model
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)
@@ -530,7 +530,7 @@ class TestModelVersionRepository:
def test_delete_returns_true(self, repo, sample_model):
"""Test delete returns True when model exists and not active."""
sample_model.is_active = False
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.get.return_value = sample_model
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)
@@ -545,7 +545,7 @@ class TestModelVersionRepository:
def test_delete_with_uuid(self, repo, sample_model):
"""Test delete works with UUID object."""
sample_model.is_active = False
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.get.return_value = sample_model
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)
@@ -557,7 +557,7 @@ class TestModelVersionRepository:
def test_delete_returns_false_when_not_found(self, repo):
"""Test delete returns False when model not found."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.get.return_value = None
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)
@@ -570,7 +570,7 @@ class TestModelVersionRepository:
def test_delete_returns_false_when_active(self, repo, active_model):
"""Test delete returns False when model is active."""
with patch("inference.data.repositories.model_version_repository.get_session_context") as mock_ctx:
with patch("backend.data.repositories.model_version_repository.get_session_context") as mock_ctx:
mock_session = MagicMock()
mock_session.get.return_value = active_model
mock_ctx.return_value.__enter__ = MagicMock(return_value=mock_session)