Добавлены классы стандартных исключений

This commit is contained in:
2026-07-11 22:55:42 +03:00
parent 3fba091cbc
commit c90abe11f8
16 changed files with 550 additions and 0 deletions

View File

@@ -131,3 +131,11 @@ class CoreExceptionTests(SimpleTestCase):
self.assertIsNotNone(self.exc_instance.meta)
self.assertIsInstance(self.exc_instance.meta, dict)
self.assertEqual(self.exc_instance.meta["trace_id"], "xyz")
def test_is_pure_status_defaults_to_false(self):
"""
Проверяет, что по умолчанию исключение возвращает False для чистого статуса
"""
exc = CoreException(status_code=400)
self.assertFalse(exc.is_pure_status())

View File

@@ -0,0 +1,16 @@
# DRF Rack
# Библиотека классов расширений для Django REST Framework
#
# Автор: Николай В. Анохин <n.anokhin@xeaf.net>
# Все права защищены. Лицензия: MIT
"""
Пакет описания тестов для классов исключений
"""
from .bad_request_exception_tests import BadRequestExceptionTests
from .critical_exception_tests import CriticalExceptionTests
from .file_not_found_exception_tests import FileNotFoundExceptionTests
from .forbidden_exception_tests import ForbiddenExceptionTests
from .not_found_exception_tests import NotFoundExceptionTests
from .unauthorized_exception_tests import UnauthorizedExceptionTests

View File

@@ -0,0 +1,40 @@
# DRF Rack
# Библиотека классов расширений для Django REST Framework
#
# Автор: Николай В. Анохин <n.anokhin@xeaf.net>
# Все права защищены. Лицензия: MIT
"""
Описание класса BadRequestExceptionTests
"""
from django.test import SimpleTestCase
from rest_framework import status
from net.xeaf.rack.utils.exceptions import BadRequestException
class BadRequestExceptionTests(SimpleTestCase):
"""
Тесты для BadRequestException
"""
def test_init_with_defaults(self):
"""
Проверяет инициализацию по умолчанию (без параметров)
"""
exc = BadRequestException()
self.assertEqual(exc.status_code, status.HTTP_400_BAD_REQUEST)
self.assertEqual(exc.detail, "rack.errors.http.bad_request")
self.assertIsNone(exc.meta)
def test_is_pure_status_returns_false(self):
"""
Гарантирует, что ошибка возвращает False для чистого HTTP статуса
"""
exc = BadRequestException()
self.assertFalse(exc.is_pure_status())

View File

@@ -0,0 +1,40 @@
# DRF Rack
# Библиотека классов расширений для Django REST Framework
#
# Автор: Николай В. Анохин <n.anokhin@xeaf.net>
# Все права защищены. Лицензия: MIT
"""
Описание класса CriticalExceptionTests
"""
from django.test import SimpleTestCase
from rest_framework import status
from net.xeaf.rack.utils.exceptions import CriticalException
class CriticalExceptionTests(SimpleTestCase):
"""
Тесты для CriticalException
"""
def test_init_with_defaults(self):
"""
Проверяет дефолтные параметры: статус и сообщение об ошибке
"""
exc = CriticalException()
self.assertEqual(exc.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR)
self.assertEqual(exc.detail, "rack.errors.http.internal_server_error")
self.assertIsNone(exc.meta)
def test_is_pure_status_returns_true(self):
"""
Гарантирует, что ошибка возвращает True для чистого HTTP статуса
"""
exc = CriticalException()
self.assertTrue(exc.is_pure_status())

View File

@@ -0,0 +1,40 @@
# DRF Rack
# Библиотека классов расширений для Django REST Framework
#
# Автор: Николай В. Анохин <n.anokhin@xeaf.net>
# Все права защищены. Лицензия: MIT
"""
Описание класса FileNotFoundExceptionTests
"""
from django.test import SimpleTestCase
from rest_framework import status
from net.xeaf.rack.utils.exceptions import FileNotFoundException
class FileNotFoundExceptionTests(SimpleTestCase):
"""
Тесты для FileNotFoundException
"""
def test_init_with_defaults(self):
"""
Проверяет дефолтные параметры: статус и сообщение об ошибке
"""
exc = FileNotFoundException()
self.assertEqual(exc.status_code, status.HTTP_404_NOT_FOUND)
self.assertEqual(exc.detail, "rack.errors.http.not_found")
self.assertIsNone(exc.meta)
def test_is_pure_status_returns_true(self):
"""
Гарантирует, что ошибка возвращает True для чистого HTTP статуса
"""
exc = FileNotFoundException()
self.assertTrue(exc.is_pure_status())

View File

@@ -0,0 +1,40 @@
# DRF Rack
# Библиотека классов расширений для Django REST Framework
#
# Автор: Николай В. Анохин <n.anokhin@xeaf.net>
# Все права защищены. Лицензия: MIT
"""
Описание класса ForbiddenExceptionTests
"""
from django.test import SimpleTestCase
from rest_framework import status
from net.xeaf.rack.utils.exceptions import ForbiddenException
class ForbiddenExceptionTests(SimpleTestCase):
"""
Тесты для BadRequestException
"""
def test_init_with_defaults(self):
"""
Проверяет инициализацию по умолчанию (без параметров)
"""
exc = ForbiddenException()
self.assertEqual(exc.status_code, status.HTTP_403_FORBIDDEN)
self.assertEqual(exc.detail, "rack.errors.http.forbidden")
self.assertIsNone(exc.meta)
def test_is_pure_status_returns_false(self):
"""
Гарантирует, что ошибка возвращает False для чистого HTTP статуса
"""
exc = ForbiddenException()
self.assertFalse(exc.is_pure_status())

View File

@@ -0,0 +1,40 @@
# DRF Rack
# Библиотека классов расширений для Django REST Framework
#
# Автор: Николай В. Анохин <n.anokhin@xeaf.net>
# Все права защищены. Лицензия: MIT
"""
Описание класса NotFoundExceptionTests
"""
from django.test import SimpleTestCase
from rest_framework import status
from net.xeaf.rack.utils.exceptions import NotFoundException
class NotFoundExceptionTests(SimpleTestCase):
"""
Тесты для NotFoundException
"""
def test_init_with_defaults(self):
"""
Проверяет дефолтные параметры: статус и сообщение об ошибке
"""
exc = NotFoundException()
self.assertEqual(exc.status_code, status.HTTP_404_NOT_FOUND)
self.assertEqual(exc.detail, "rack.errors.http.not_found")
self.assertIsNone(exc.meta)
def test_is_pure_status_returns_false(self):
"""
Гарантирует, что ошибка возвращает False для чистого HTTP статуса
"""
exc = NotFoundException()
self.assertFalse(exc.is_pure_status())

View File

@@ -0,0 +1,40 @@
# DRF Rack
# Библиотека классов расширений для Django REST Framework
#
# Автор: Николай В. Анохин <n.anokhin@xeaf.net>
# Все права защищены. Лицензия: MIT
"""
Описание класса UnauthorizedExceptionTests
"""
from django.test import SimpleTestCase
from rest_framework import status
from net.xeaf.rack.utils.exceptions import UnauthorizedException
class UnauthorizedExceptionTests(SimpleTestCase):
"""
Тесты для UnauthorizedException
"""
def test_init_with_defaults(self):
"""
Проверяет дефолтные параметры: статус и сообщение об ошибке
"""
exc = UnauthorizedException()
self.assertEqual(exc.status_code, status.HTTP_401_UNAUTHORIZED)
self.assertEqual(exc.detail, "rack.errors.http.unauthorized")
self.assertIsNone(exc.meta)
def test_is_pure_status_returns_false(self):
"""
Гарантирует, что ошибка возвращает False для чистого HTTP статуса
"""
exc = UnauthorizedException()
self.assertFalse(exc.is_pure_status())