Skip to content

Commit

Permalink
Fix failing tests and address ABCMeta Issue.
Browse files Browse the repository at this point in the history
* ABCMeta typing issue with requests package
  * python/mypy#5264 (comment)
* Run pytest and remove broken test as functionality was removed.
  • Loading branch information
adithyabsk committed Apr 12, 2020
1 parent 1ede853 commit de2018c
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 14 deletions.
24 changes: 14 additions & 10 deletions pyrh/models/sessionmanager.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import uuid
from datetime import datetime, timedelta
from pathlib import Path
from typing import Any, Dict, Optional, Union, cast, overload
from typing import TYPE_CHECKING, Any, Dict, Optional, Union, cast, overload
from urllib.request import getproxies

import pytz
Expand Down Expand Up @@ -34,9 +34,13 @@
"""Path to login.json config file."""
CACHE_LOGIN.touch(exist_ok=True)

HTTPHeader = CaseInsensitiveDict[str]
if TYPE_CHECKING:
CaseInsensitiveDictType = CaseInsensitiveDict[str]
else:
CaseInsensitiveDictType = CaseInsensitiveDict

Proxies = Dict[str, str]
HEADERS: HTTPHeader = HTTPHeader(
HEADERS: CaseInsensitiveDictType = CaseInsensitiveDict(
{
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate",
Expand Down Expand Up @@ -102,7 +106,7 @@ def __init__(
username: str,
password: str,
challenge_type: Optional[str] = "email",
headers: Optional[HTTPHeader] = None,
headers: Optional[CaseInsensitiveDictType] = None,
proxies: Optional[Proxies] = None,
) -> None:
self.session: requests.Session = requests.session()
Expand Down Expand Up @@ -171,7 +175,7 @@ def get(
url: Union[str, URL],
params: Optional[Dict[str, Any]] = None,
*,
headers: Optional[HTTPHeader] = None,
headers: Optional[CaseInsensitiveDictType] = None,
raise_errors: bool = True,
return_response: Literal[True],
auto_login: bool = True,
Expand All @@ -184,7 +188,7 @@ def get(
url: Union[str, URL],
params: Optional[Dict[str, Any]] = None,
*,
headers: Optional[HTTPHeader] = None,
headers: Optional[CaseInsensitiveDictType] = None,
raise_errors: bool = True,
return_response: Literal[False] = ...,
auto_login: bool = True,
Expand All @@ -196,7 +200,7 @@ def get(
url: Union[str, URL],
params: Optional[Dict[str, Any]] = None,
*,
headers: Optional[HTTPHeader] = None,
headers: Optional[CaseInsensitiveDictType] = None,
raise_errors: bool = True,
return_response: bool = False,
auto_login: bool = True,
Expand Down Expand Up @@ -239,7 +243,7 @@ def post(
url: Union[str, URL],
data: Optional[JSON] = None,
*,
headers: Optional[HTTPHeader] = None,
headers: Optional[CaseInsensitiveDictType] = None,
raise_errors: bool = True,
return_response: Literal[True],
auto_login: bool = True,
Expand All @@ -252,7 +256,7 @@ def post(
url: Union[str, URL],
data: Optional[JSON] = None,
*,
headers: Optional[HTTPHeader] = None,
headers: Optional[CaseInsensitiveDictType] = None,
raise_errors: bool = True,
return_response: Literal[False] = ...,
auto_login: bool = True,
Expand All @@ -264,7 +268,7 @@ def post(
url: Union[str, URL],
data: Optional[JSON] = None,
*,
headers: Optional[HTTPHeader] = None,
headers: Optional[CaseInsensitiveDictType] = None,
raise_errors: bool = True,
return_response: bool = False,
auto_login: bool = True,
Expand Down
5 changes: 1 addition & 4 deletions tests/test_sessionmanager.py
Original file line number Diff line number Diff line change
Expand Up @@ -449,20 +449,17 @@ def test_post(mock_login, sm):
sm.session.mount("mock", adapter)
mock_url = "mock://test.com"
expected = [
{"text": "", "status_code": 200, "headers": {"Content-Length": "0"}},
{"text": '{"error": "login error"}', "status_code": 401},
{"text": '{"test": "321"}', "status_code": 200},
{"text": '{"error": "resource not found"}', "status_code": 404},
]
adapter.register_uri("POST", mock_url, expected)

resp1 = sm.post(mock_url)
resp2 = sm.post(mock_url)

with pytest.raises(HTTPError) as e:
sm.post(mock_url)

assert resp1 == {}
assert resp2 == json.loads(expected[2]["text"])
assert resp1 == json.loads(expected[1]["text"])
assert mock_login.call_count == 1
assert "404 Client Error" in str(e.value)

0 comments on commit de2018c

Please sign in to comment.