APITestCase orqali avtomatlashtirilgan sinovlar, OpenAPI 3.0, Swagger va ReDoc
10-sinfAdvanced Python Back-end3-hafta · 9-darsAPITestCase, APIClient, force_authenticate va regressiyalarni oldini olish.
drf-spectacular, interaktiv Swagger UI va ReDoc hujjatlashtirish tizimi.
3 haftalik to'liq professional REST API loyihasini muvaffaqiyatli topshirish.
APITestCase va ishonchli sinovlar
Har bir test vaqtinchalik xotira bazasida izolyatsiyalangan holda bajariladi
class PostAPITestCase(APITestCase):
def setUp(self):
self.user = User.objects.create_user("[email protected]", "pass")
self.cat = Category.objects.create(name="IT", slug="it")
def test_list_posts(self):
response = self.client.get("/api/v1/posts/")
self.assertEqual(response.status_code, status.HTTP_200_OK)
def test_create_post_authenticated(self):
self.client.force_authenticate(user=self.user)
res = self.client.post("/api/v1/posts/", {"title": "A", "category": self.cat.id})
self.assertEqual(res.status_code, status.HTTP_201_CREATED)
def test_create_unauthenticated_fails(self):
res = self.client.post("/api/v1/posts/", {"title": "X"})
self.assertEqual(res.status_code, status.HTTP_401_UNAUTHORIZED)
drf-spectacular va OpenAPI 3.0 standarti
Kodingizdagi o'zgarishlar darhol veb-hujjatda aks etadi
NewsPortal REST API v1.0.0 — [Authorize Bearer]
GET /api/v1/posts/ — Maqolalar ro'yxatini olish
POST /api/v1/posts/ — Yangi maqola yaratish
GET /api/v1/posts/{slug}/ — Maqola tafsilotlari
3 haftalik to'liq backend arxitekturasi
Bosing va tekshiring
Vaqtinchalik xotira bazasida so'rovlarni avtomatik sinovdan o'tkazuvchi vosita.
Bosing va tekshiring
Brauzerda API ni ko'rish va to'g'ridan-to'g'ri testlab ko'rish interfeysi.
Bosing va tekshiring
Testda parolsiz foydalanuvchi nomidan darhol so'rov yuborish imkoni.
Nima uchun Swagger UI frontend dasturchilar bilan ishlashda eng muhim vosita hisoblanadi?
apps/news/tests/test_posts_api.py faylini yarating va python manage.py test qiling.
pip install drf-spectacular qilib, /api/docs/ marshrutini ulang.
Keyingi bobda (II Bob): Asinxron Python olami — zamonaviy va o'ta tezkor FastAPI freymvorkini boshlaymiz!