Files
state-corp-backend/tests/apps/core/test_middleware.py
Aleksandr Meshchriakov e9d7f24aaa
Some checks failed
CI/CD Pipeline / Run Tests (push) Failing after 0s
CI/CD Pipeline / Code Quality Checks (push) Failing after 1m43s
CI/CD Pipeline / Build Docker Images (push) Has been skipped
CI/CD Pipeline / Push to Gitea Registry (push) Has been skipped
first commit
2026-01-21 12:07:35 +01:00

35 lines
1.2 KiB
Python

"""Tests for core middleware"""
from django.urls import reverse
from rest_framework.test import APITestCase
class RequestIDMiddlewareTest(APITestCase):
"""Tests for RequestIDMiddleware"""
def test_request_id_generated(self):
"""Test that request ID is generated and returned in response header"""
url = reverse("core:health")
response = self.client.get(url)
self.assertIn("X-Request-ID", response)
self.assertIsNotNone(response["X-Request-ID"])
# UUID format check (36 chars with hyphens)
self.assertEqual(len(response["X-Request-ID"]), 36)
def test_request_id_passed_through(self):
"""Test that provided X-Request-ID is passed through"""
url = reverse("core:health")
custom_id = "custom-request-id-12345"
response = self.client.get(url, HTTP_X_REQUEST_ID=custom_id)
self.assertEqual(response["X-Request-ID"], custom_id)
def test_different_requests_different_ids(self):
"""Test that different requests get different IDs"""
url = reverse("core:health")
response1 = self.client.get(url)
response2 = self.client.get(url)
self.assertNotEqual(response1["X-Request-ID"], response2["X-Request-ID"])