/
liquid-g
/
liquid-code
Обзор
Документация
Войти
/
liquid-g
/
liquid-code
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
tests/test_contracts.py
122 строки
5 KB
User
0.3.0-RC - дописаны тесты и мелкие исправления
04 июл 2026, 13:07
04 июл 2026, 13:07
40ad8b8
Код
Авторство
О чём код?
"""Тесты для абстрактных контрактов Request и Response.""" import pytest from liquidcode.contracts import Request, Response class TestRequest: """Тесты для абстрактного класса Request.""" def test_request_is_abstract(self): """Request должен быть абстрактным классом.""" with pytest.raises(TypeError): Request() def test_request_implements_methods(self): """Проверка реализации всех абстрактных методов.""" from liquidcode.http import HttpRequest request = HttpRequest(path="/test", method="GET") # Проверяем методы assert request.get_method() == "GET" assert request.get_path() == "/test" assert isinstance(request.get_headers(), dict) assert isinstance(request.get_body(), bytes) assert isinstance(request.get_query_params(), dict) assert isinstance(request.get_route_params(), dict) # Проверяем set_route_params request.set_route_params({"id": "123"}) assert request.get_route_params() == {"id": "123"} # Проверяем get_attr/set_attr request.set_attr("key", "value") assert request.get_attr("key") == "value" assert request.get_attr("nonexistent", "default") == "default" def test_http_request_get_method(self): """Проверка метода get_method для HttpRequest.""" from liquidcode.http import HttpRequest request = HttpRequest(path="/test", method="POST") assert request.get_method() == "POST" def test_http_request_get_path(self): """Проверка метода get_path для HttpRequest.""" from liquidcode.http import HttpRequest request = HttpRequest(path="/users/123", method="GET") assert request.get_path() == "/users/123" def test_http_request_get_headers(self): """Проверка метода get_headers для HttpRequest.""" from liquidcode.http import HttpRequest headers = {"Content-Type": "application/json"} request = HttpRequest(path="/test", method="GET", headers=headers) assert request.get_headers() == headers def test_http_request_get_body(self): """Проверка метода get_body для HttpRequest.""" from liquidcode.http import HttpRequest body = b"{\"test\": true}" request = HttpRequest(path="/test", method="POST", body=body) assert request.get_body() == body def test_http_request_get_query_params(self): """Проверка метода get_query_params для HttpRequest.""" from liquidcode.http import HttpRequest request = HttpRequest(path="/test?name=test", method="GET") assert request.get_query_params() == {"name": "test"} def test_http_request_get_route_params(self): """Проверка метода get_route_params для HttpRequest.""" from liquidcode.http import HttpRequest request = HttpRequest(path="/test", method="GET") request.set_route_params({"id": "123"}) assert request.get_route_params() == {"id": "123"} def test_http_request_get_attr_set_attr(self): """Проверка методов get_attr/set_attr для HttpRequest.""" from liquidcode.http import HttpRequest request = HttpRequest(path="/test", method="GET") request.set_attr("user_id", 123) assert request.get_attr("user_id") == 123 assert request.get_attr("nonexistent", "default") == "default" class TestResponse: """Тесты для абстрактного класса Response.""" def test_response_is_abstract(self): """Response должен быть абстрактным классом.""" with pytest.raises(TypeError): Response() def test_response_implements_methods(self): """Проверка реализации всех абстрактных методов.""" from liquidcode.http import HttpResponse response = HttpResponse(content={"test": True}, status=200) # Проверяем методы assert response.get_content() == {"test": True} assert response.get_status() == 200 assert isinstance(response.get_headers(), dict) # Проверяем set_header response.set_header("X-Test", "value") assert response.get_headers()["X-Test"] == "value" # Проверяем set_content response.set_content({"new": "data"}) assert response.get_content() == {"new": "data"} # Проверяем set_status response.set_status(404) assert response.get_status() == 404