From df499960be22286284583650ec318d329c2fe77b Mon Sep 17 00:00:00 2001 From: Volodymyr Yahello Date: Sun, 31 May 2020 13:16:03 +0300 Subject: [PATCH] Use status method name instead of code --- README.md | 12 ++++++------ aiorequest/responses.py | 13 +++++++------ tests/fake.py | 5 ++--- tests/test_responses.py | 19 +++++++++---------- 4 files changed, 24 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index 67f6943..5637a73 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![Screenshot](icon.png) +[Screenshot](icon.png) [![made-with-python](https://img.shields.io/badge/Made%20with-Python-1f425f.svg)](https://www.python.org/) [![Build Status](https://travis-ci.org/aiopymake/aiorequest.svg?branch=master)](https://travis-ci.org/aiopymake/aiorequest) @@ -52,23 +52,23 @@ pip install aiorequest >>> import asyncio >>> from typing import Tuple >>> from aiorequest.sessions import Session, HttpSession ->>> from aiorequest.responses import Response, JsonType +>>> from aiorequest.responses import HTTPStatus, Response, JsonType >>> from aiorequest.urls import HttpUrl >>> >>> ->>> async def aioresponse() -> Tuple[bool, JsonType]: +>>> async def aioresponse() -> Tuple[HTTPStatus, JsonType]: ... session: Session ... async with HttpSession() as session: ... response: Response = await session.get( ... HttpUrl(host="xkcd.com", path="info.0.json") ... ) -... return await response.is_ok(), await response.as_json() +... return await response.status(), await response.as_json() ... ... >>> >>> asyncio.run(aioresponse()) ( - True, + , { "month": "3", "num": 2284, @@ -84,7 +84,7 @@ pip install aiorequest ) ``` -### Source code +### Source status ```bash git clone git@github.com:aiopymake/aiorequest.git diff --git a/aiorequest/responses.py b/aiorequest/responses.py index b3aaf29..ba52018 100644 --- a/aiorequest/responses.py +++ b/aiorequest/responses.py @@ -1,11 +1,12 @@ """The module contains a set of API for HTTP responses types.""" from typing import Iterable -from http import HTTPStatus +import http import requests from punish import AbstractStyle, abstractstyle from aiorequest.types import AnyUnionDict JsonType = AnyUnionDict +HTTPStatus = http.HTTPStatus class ResponseError(Exception): @@ -23,8 +24,8 @@ async def is_ok(self) -> bool: pass @abstractstyle - async def code(self) -> HTTPStatus: - """Returns HTTP response status code.""" + async def status(self) -> HTTPStatus: + """Returns HTTP response status.""" pass @abstractstyle @@ -48,7 +49,7 @@ async def is_ok(self) -> bool: """See base class.""" return self._response.ok - async def code(self) -> HTTPStatus: + async def status(self) -> HTTPStatus: """See base class.""" return HTTPStatus(self._response.status_code) @@ -75,9 +76,9 @@ async def safe_response( `ResponseError` if HTTP response contains a set of errors Returns: a response """ - if await response.code() not in success_codes: + if await response.status() not in success_codes: raise ResponseError( - f"HTTP response contains some errors with '{await response.code()}' status code! " + f"HTTP response contains some errors with '{await response.status()}' status! " f"Reason: {await response.as_str()}" ) return response diff --git a/tests/fake.py b/tests/fake.py index 282bd33..44e047b 100644 --- a/tests/fake.py +++ b/tests/fake.py @@ -1,5 +1,4 @@ -from http import HTTPStatus -from aiorequest.responses import JsonType, Response +from aiorequest.responses import HTTPStatus, JsonType, Response class FakeHttpResponse(Response): @@ -16,7 +15,7 @@ def __init__( async def is_ok(self) -> bool: return self._is_ok - async def code(self) -> HTTPStatus: + async def status(self) -> HTTPStatus: return self._code async def as_json(self) -> JsonType: diff --git a/tests/test_responses.py b/tests/test_responses.py index f8278df..f12a341 100644 --- a/tests/test_responses.py +++ b/tests/test_responses.py @@ -1,15 +1,14 @@ -from http import HTTPStatus from typing import Iterable import pytest from tests.fake import FakeHttpResponse -from aiorequest.responses import Response, ResponseError, safe_response +from aiorequest.responses import HTTPStatus, Response, ResponseError, safe_response from tests.markers import asyncio, unit pytestmark = [unit, asyncio] @pytest.mark.parametrize( # noqa: PT006, PT007 - "code, expected", + "status, expected", ( pytest.param( HTTPStatus.CONTINUE, @@ -17,9 +16,7 @@ id="info", ), pytest.param( - HTTPStatus.OK, - (HTTPStatus.OK, HTTPStatus.CREATED, HTTPStatus.ACCEPTED), - id="success", + HTTPStatus.OK, (HTTPStatus.OK, HTTPStatus.CREATED, HTTPStatus.ACCEPTED), id="success", ), pytest.param( HTTPStatus.MULTIPLE_CHOICES, @@ -38,8 +35,10 @@ ), ), ) -async def test_safe_response_code(code: HTTPStatus, expected: Iterable[int]) -> None: - assert isinstance(await safe_response(FakeHttpResponse(code), success_codes=expected), Response) +async def test_safe_response_code(status: HTTPStatus, expected: Iterable[int]) -> None: + assert isinstance( + await safe_response(FakeHttpResponse(status), success_codes=expected), Response + ) async def test_safe_response_error() -> None: @@ -59,7 +58,7 @@ async def test_response_is_ok(response: Response) -> None: async def test_response_code(response: Response) -> None: - assert await response.code() is HTTPStatus.OK + assert await response.status() is HTTPStatus.OK async def test_response_text(response: Response) -> None: @@ -75,7 +74,7 @@ async def test_logged_response_is_ok(logged_response: Response) -> None: async def test_logged_response_code(logged_response: Response) -> None: - assert await logged_response.code() is HTTPStatus.OK + assert await logged_response.status() is HTTPStatus.OK async def test_logged_response_text(logged_response: Response) -> None: