Download api/tests/test_router_feedback.py from iBrokeTheCode/Image_Classifier_with_CNN: direct link, hf CLI and curl.
- Browser
- Download file 2.24 kB
-
https://huggingface.co/spaces/iBrokeTheCode/Image_Classifier_with_CNN/resolve/main/api/tests/test_router_feedback.py
- Command line
-
hf download hf://spaces/iBrokeTheCode/Image_Classifier_with_CNN/api/tests/test_router_feedback.py
-
curl -L -o test_router_feedback.py https://huggingface.co/spaces/iBrokeTheCode/Image_Classifier_with_CNN/resolve/main/api/tests/test_router_feedback.py
2.24 kB
| from unittest import mock | |
| import pytest | |
| from app import db | |
| from app.auth.jwt import get_current_user | |
| from app.feedback.schema import DisplayFeedback, Feedback | |
| from app.user.schema import User | |
| from fastapi.testclient import TestClient | |
| from main import app | |
| from sqlalchemy.orm import Session | |
| client = TestClient(app) | |
| sample_user = User( | |
| id=1, | |
| username="testuser", | |
| email="testuser@example.com", | |
| name="Test User", | |
| password="password", | |
| ) | |
| sample_feedback = Feedback( | |
| feedback="Great service!", | |
| image_file_name="testimage.jpg", | |
| predicted_class="dog", | |
| score=0.95, | |
| ) | |
| def mock_db_session(): | |
| return mock.create_autospec(Session, instance=True) | |
| def mock_get_current_user(): | |
| return sample_user | |
| def test_create_feedback(mock_new_feedback, mock_db_session, mock_get_current_user): | |
| mock_new_feedback.return_value = sample_feedback | |
| payload = { | |
| "feedback": "Great service!", | |
| "image_file_name": "testimage.jpg", | |
| "predicted_class": "dog", | |
| "score": 0.95, | |
| } | |
| app.dependency_overrides[db.get_db] = lambda: mock_db_session | |
| app.dependency_overrides[get_current_user] = lambda: mock_get_current_user | |
| response = client.post( | |
| "/feedback/", | |
| json=payload, | |
| ) | |
| assert response.status_code == 201 | |
| mock_new_feedback.assert_called_once_with(payload, sample_user, mock_db_session) | |
| def test_get_all_feedback(mock_all_feedback, mock_db_session, mock_get_current_user): | |
| # Setup the mock service to return a list of feedback | |
| mock_all_feedback.return_value = [ | |
| DisplayFeedback( | |
| id=1, | |
| feedback="Great service!", | |
| score=0.95, | |
| predicted_class="dog", | |
| image_file_name="testimage.jpg", | |
| ) | |
| ] | |
| app.dependency_overrides[db.get_db] = lambda: mock_db_session | |
| app.dependency_overrides[get_current_user] = lambda: mock_get_current_user | |
| response = client.get( | |
| "/feedback/", | |
| ) | |
| assert response.status_code == 200 | |
| mock_all_feedback.assert_called_once_with(mock_db_session, sample_user) | |