42 lines
1.5 KiB
Python
42 lines
1.5 KiB
Python
# DRF Rack
|
|
# Библиотека классов расширений для Django REST Framework
|
|
#
|
|
# Автор: Николай В. Анохин <n.anokhin@xeaf.net>
|
|
# Все права защищены. Лицензия: MIT
|
|
|
|
"""
|
|
Описание класса DataResponseTests
|
|
"""
|
|
|
|
from django.test import SimpleTestCase
|
|
from rest_framework import status
|
|
|
|
from net.xeaf.rack.models.responses import DataResponse
|
|
|
|
|
|
class DataResponseTests(SimpleTestCase):
|
|
"""
|
|
Тесты для класса DataResponse
|
|
"""
|
|
|
|
def test_init_with_dict_data(self):
|
|
"""
|
|
Проверяет корректное создание ответа со словарем данных и дефолтными статус-кодами
|
|
"""
|
|
|
|
test_dict = {"id": 42, "name": "Main Project", "is_active": True}
|
|
test_meta = {"version": "1.0.0"}
|
|
|
|
response = DataResponse(data=test_dict, meta=test_meta)
|
|
|
|
# Проверяем честный HTTP-статус в заголовках
|
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
|
|
|
# Проверяем контракт тела JSON
|
|
self.assertEqual(response.data["status"], status.HTTP_200_OK)
|
|
# Так как код 200 (< 400), объект обязан лежать именно в "data"
|
|
self.assertEqual(response.data["data"], test_dict)
|
|
|
|
# Проверяем проброс метаданных
|
|
self.assertEqual(response.data["meta"], test_meta)
|