File tree Expand file tree Collapse file tree 2 files changed +35
-3
lines changed Expand file tree Collapse file tree 2 files changed +35
-3
lines changed Original file line number Diff line number Diff line change 1
- from .model import KenAllResult
2
1
import urllib .request
3
2
import urllib .parse
4
3
import json
5
4
from typing import Dict
6
5
6
+ from kenallclient .model import KenAllResult
7
+
7
8
8
9
class KenAllClient :
9
10
def __init__ (self , api_key : str ) -> None :
@@ -19,10 +20,13 @@ def create_request(self, postal_code) -> urllib.request.Request:
19
20
req = urllib .request .Request (url , headers = self .authorization )
20
21
return req
21
22
22
- def get (self , postal_code ) -> KenAllResult :
23
- req = self .create_request (postal_code )
23
+ def fetch (self , req : urllib .request .Request ) -> KenAllResult :
24
24
with urllib .request .urlopen (req ) as res :
25
25
if not res .headers ["Content-Type" ].startswith ("application/json" ):
26
26
ValueError ("not json response" , res .read ())
27
27
d = json .load (res )
28
28
return KenAllResult .fromdict (d )
29
+
30
+ def get (self , postal_code ) -> KenAllResult :
31
+ req = self .create_request (postal_code )
32
+ return self .fetch (req )
Original file line number Diff line number Diff line change
1
+ def test_it ():
2
+ pass
3
+
4
+
5
+ def test_create_request ():
6
+ from kenallclient .client import KenAllClient
7
+
8
+ target = KenAllClient ("testing-api-key" )
9
+ result = target .create_request ("9999999" )
10
+ assert result .full_url == "https://api.kenall.jp/v1/postalcode/9999999"
11
+ assert result .headers == {"Authorization" : "Token testing-api-key" }
12
+
13
+
14
+ def test_fetch (mocker , dummy_json ):
15
+ import json
16
+ import io
17
+ from kenallclient .client import KenAllClient
18
+
19
+ dummy_response = io .StringIO (json .dumps (dummy_json ))
20
+ dummy_response .headers = {"Content-Type" : "application/json" }
21
+ mock_urlopen = mocker .patch ("kenallclient.client.urllib.request.urlopen" )
22
+ mock_urlopen .return_value = dummy_response
23
+
24
+ request = object ()
25
+ target = KenAllClient ("testing-api-key" )
26
+ result = target .fetch (request )
27
+ mock_urlopen .assert_called_with (request )
28
+ assert result
You can’t perform that action at this time.
0 commit comments