Untitled
unknown
python
10 days ago
2.4 kB
7
Indexable
from django.urls import reverse from rest_framework import status from rest_framework.test import APITestCase from .models import Drug class DrugSearchByImageViewTests(APITestCase): def setUp(self): # إنشاء دواء بصورته (صورة حمراء) red_image = create_test_image((255, 0, 0)) self.drug = Drug.objects.create( name='أسبرين', description='مسكن ألم', image=red_image ) # تأكد أن هذا الاسم هو نفسه الموجود في urls.py self.url = reverse('drug-search-by-image') def test_عدم_وجود_صورة(self): """ اختبار في حال لم يتم إرسال صورة، يجب أن يرجع خطأ. """ response = self.client.post(self.url) self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) self.assertIn('error', response.data) def test_صورة_مشابهة_تُرجع_الدواء_الصحيح(self): """ رفع صورة مشابهة لصورة الدواء ويجب أن يُرجع نفس الدواء. """ similar_image = create_test_image((254, 0, 0)) # مشابهة جدًا للأحمر response = self.client.post(self.url, {'image': similar_image}, format='multipart') self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertEqual(response.data['name'], self.drug.name) def test_صورة_غير_صالحة(self): """ اختبار رفع ملف غير صالح كصورة. """ bad_image = SimpleUploadedFile("bad.jpg", b"هذا ليس صورة", content_type="image/jpeg") response = self.client.post(self.url, {'image': bad_image}, format='multipart') self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) self.assertIn('error', response.data) def test_عدم_وجود_أي_دواء(self): """ اختبار في حال لم يكن هناك أدوية في قاعدة البيانات. """ Drug.objects.all().delete() test_image = create_test_image((255, 255, 0)) response = self.client.post(self.url, {'image': test_image}, format='multipart') self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND) self.assertIn('error', response.data)
Editor is loading...
Leave a Comment