feat: обновления парсеров, тестов и миграций
Some checks failed
CI/CD Pipeline / Run Tests (push) Failing after 37s
CI/CD Pipeline / Code Quality Checks (push) Failing after 43s
CI/CD Pipeline / Build & Push Images (push) Has been skipped
CI/CD Pipeline / Deploy (dev) (push) Has been skipped
CI/CD Pipeline / Deploy (prod) (push) Has been skipped
CI/CD Pipeline / Code Quality Checks (pull_request) Failing after 0s
CI/CD Pipeline / Run Tests (pull_request) Failing after 0s
CI/CD Pipeline / Build & Push Images (pull_request) Has been skipped
CI/CD Pipeline / Deploy (dev) (pull_request) Has been skipped
CI/CD Pipeline / Deploy (prod) (pull_request) Has been skipped
Some checks failed
CI/CD Pipeline / Run Tests (push) Failing after 37s
CI/CD Pipeline / Code Quality Checks (push) Failing after 43s
CI/CD Pipeline / Build & Push Images (push) Has been skipped
CI/CD Pipeline / Deploy (dev) (push) Has been skipped
CI/CD Pipeline / Deploy (prod) (push) Has been skipped
CI/CD Pipeline / Code Quality Checks (pull_request) Failing after 0s
CI/CD Pipeline / Run Tests (pull_request) Failing after 0s
CI/CD Pipeline / Build & Push Images (pull_request) Has been skipped
CI/CD Pipeline / Deploy (dev) (pull_request) Has been skipped
CI/CD Pipeline / Deploy (prod) (pull_request) Has been skipped
- Обновлены клиенты парсеров (checko, fns, minpromtorg, proverki, zakupki) - Добавлены новые миграции для моделей - Расширено покрытие тестами - Обновлены конфигурации и настройки проекта - Добавлены утилиты для тестирования Co-Authored-By: Warp <agent@warp.dev>
This commit is contained in:
@@ -1,5 +1,11 @@
|
||||
"""Tests for core middleware"""
|
||||
|
||||
import logging
|
||||
from io import StringIO
|
||||
|
||||
from apps.core.middleware import RequestIDMiddleware, RequestLoggingMiddleware, get_request_id
|
||||
from django.http import HttpResponse
|
||||
from django.test import RequestFactory
|
||||
from django.urls import reverse
|
||||
from rest_framework.test import APITestCase
|
||||
|
||||
@@ -32,3 +38,34 @@ class RequestIDMiddlewareTest(APITestCase):
|
||||
response2 = self.client.get(url)
|
||||
|
||||
self.assertNotEqual(response1["X-Request-ID"], response2["X-Request-ID"])
|
||||
|
||||
|
||||
class RequestLoggingMiddlewareTest(APITestCase):
|
||||
def setUp(self):
|
||||
self.factory = RequestFactory()
|
||||
self.logger = logging.getLogger("apps.core.middleware")
|
||||
self.logger.setLevel(logging.INFO)
|
||||
self.stream = StringIO()
|
||||
handler = logging.StreamHandler(self.stream)
|
||||
self.logger.handlers = []
|
||||
self.logger.addHandler(handler)
|
||||
|
||||
def test_process_request_and_response_logs(self):
|
||||
middleware = RequestLoggingMiddleware(lambda req: HttpResponse(status=200))
|
||||
request = self.factory.get("/health/")
|
||||
request.request_id = "req-123"
|
||||
middleware.process_request(request)
|
||||
response = middleware.process_response(request, HttpResponse(status=200))
|
||||
self.assertEqual(response.status_code, 200)
|
||||
output = self.stream.getvalue()
|
||||
self.assertIn("Started", output)
|
||||
self.assertIn("200", output)
|
||||
|
||||
def test_request_id_middleware_exception(self):
|
||||
middleware = RequestIDMiddleware(lambda req: None)
|
||||
request = self.factory.get("/health/")
|
||||
middleware.process_request(request)
|
||||
middleware.process_exception(request, RuntimeError("boom"))
|
||||
response = middleware.process_response(request, HttpResponse(status=200))
|
||||
self.assertIn("X-Request-ID", response)
|
||||
self.assertIsNone(get_request_id())
|
||||
|
||||
Reference in New Issue
Block a user