| """
|
| Unit tests for TranslationFeedback model
|
|
|
| Tests:
|
| - test_create_translation_feedback: Verify feedback creation
|
| - test_feedback_foreign_key_constraint: Verify FK relationship to translations
|
| """
|
|
|
| import pytest
|
| from models.translation_feedback import TranslationFeedback
|
| from models.translation import Translation
|
| from database.models import User
|
| from database.db import get_db_session
|
| import uuid
|
| from datetime import datetime
|
|
|
|
|
| @pytest.mark.asyncio
|
| async def test_create_translation_feedback():
|
| """Test creating a translation feedback record"""
|
|
|
| feedback_id = uuid.uuid4()
|
| translation_id = uuid.uuid4()
|
| user_id = uuid.uuid4()
|
| issue_description = "Technical term 'API' was incorrectly translated to Urdu"
|
|
|
|
|
| feedback = TranslationFeedback(
|
| id=feedback_id,
|
| translation_id=translation_id,
|
| user_id=user_id,
|
| issue_description=issue_description,
|
| created_at=datetime.utcnow()
|
| )
|
|
|
|
|
| assert feedback.id == feedback_id
|
| assert feedback.translation_id == translation_id
|
| assert feedback.user_id == user_id
|
| assert feedback.issue_description == issue_description
|
| assert feedback.created_at is not None
|
| print(f"✅ TranslationFeedback model created: {feedback}")
|
|
|
|
|
| @pytest.mark.asyncio
|
| async def test_feedback_foreign_key_constraint():
|
| """Test that feedback links to translation record via FK"""
|
|
|
| translation_id = uuid.uuid4()
|
| user_id = uuid.uuid4()
|
|
|
|
|
| feedback = TranslationFeedback(
|
| id=uuid.uuid4(),
|
| translation_id=translation_id,
|
| user_id=user_id,
|
| issue_description="Translation quality issue",
|
| created_at=datetime.utcnow()
|
| )
|
|
|
|
|
| assert feedback.translation_id == translation_id
|
| assert hasattr(feedback, 'translation_id'), "Feedback must have translation_id FK"
|
| assert hasattr(feedback, 'user_id'), "Feedback must have user_id FK"
|
| print(f"✅ Foreign key constraint verified: translation_id={translation_id}")
|
|
|
|
|
| def test_feedback_model_repr():
|
| """Test __repr__ method for debugging"""
|
| feedback = TranslationFeedback(
|
| id=uuid.uuid4(),
|
| translation_id=uuid.uuid4(),
|
| user_id=uuid.uuid4(),
|
| issue_description="Test issue",
|
| created_at=datetime.utcnow()
|
| )
|
|
|
| repr_str = repr(feedback)
|
| assert "TranslationFeedback" in repr_str
|
| assert "issue_description" in repr_str or "translation_id" in repr_str
|
| print(f"✅ Model repr: {repr_str}")
|
|
|