@@ -8,88 +8,66 @@ class ApiClientTest(unittest.TestCase):
88 @patch ("src.api_client.requests.get" )
99 def test_get_location_return_expected_data (self , mock_get ):
1010 mock_get .return_value .status_code = 200
11-
11+
1212 # Establecemos los datos que deseamos y la estructura que necesitamos.
1313 # Mockeamos la respuesta del API
14- mock_get .return_value .json .return_value = {
15- ' countryName' : ' USA' ,
16- ' regionName' : ' Florida' ,
17- ' cityName' : ' MIAMI' ,
18- ' countryCode' : "US"
19- }
20-
14+ mock_get .return_value .json .return_value = {
15+ " countryName" : " USA" ,
16+ " regionName" : " Florida" ,
17+ " cityName" : " MIAMI" ,
18+ " countryCode" : "US" ,
19+ }
20+
2121 result = get_location ("8.8.8.8" )
2222 self .assertEqual (result .get ("country" ), "USA" )
2323 self .assertEqual (result .get ("region" ), "Florida" )
2424 self .assertEqual (result .get ("city" ), "MIAMI" )
2525 self .assertEqual (result .get ("code" ), "US" )
26-
26+
2727 # Nos aseguramos que la petición sea con la url y el parámetro correcto
28-
28+
2929 mock_get .assert_called_once_with ("https://freeipapi.com/api/json/8.8.8.8" )
30-
31-
30+
3231 @patch ("src.api_client.requests.get" )
3332 def test_get_location_return_side_effect (self , mock_get ):
3433 # Se realizarán dos llamadas, una con error y otra correctamente
35-
34+
3635 mock_get .side_effect = [
3736 requests .exceptions .RequestException ("Service Unavailable" ),
3837 unittest .mock .Mock (
39- status_code = 200 ,
40- json = lambda : {
41- 'countryName' : 'USA' ,
42- 'regionName' : 'Florida' ,
43- 'cityName' : 'MIAMI' ,
44- 'countryCode' : "US"
45- }
46-
47- )
48- ]
49-
50- with self .assertRaises (
51- requests .exceptions .RequestException
52- ):
53- get_location ("8.8.8.8" )
54-
38+ status_code = 200 ,
39+ json = lambda : {
40+ "countryName" : "USA" ,
41+ "regionName" : "Florida" ,
42+ "cityName" : "MIAMI" ,
43+ "countryCode" : "US" ,
44+ },
45+ ),
46+ ]
47+
48+ with self .assertRaises (requests .exceptions .RequestException ):
49+ get_location ("8.8.8.8" )
50+
5551 result = get_location ("8.8.8.8" )
5652 self .assertEqual (result .get ("country" ), "USA" )
5753 self .assertEqual (result .get ("region" ), "Florida" )
5854 self .assertEqual (result .get ("city" ), "MIAMI" )
5955 self .assertEqual (result .get ("code" ), "US" )
6056
61-
6257 @patch ("src.api_client.requests.get" )
6358 def test_get_location_return_side_effect_with_invalid_ip (self , mock_get ):
64- # Se realizarán dos llamadas, una con error y otra correctamente
65-
6659 mock_get .side_effect = [
67- requests . exceptions . HTTPError ("8.8.0 does not appear to be an IPv4 or IPv6 address" ),
60+ ValueError ("8.8.0 does not appear to be an IPv4 or IPv6 address" ),
6861 unittest .mock .Mock (
69- status_code = 200 ,
70- json = lambda : {
71- 'countryName' : 'USA' ,
72- 'regionName' : 'Florida' ,
73- 'cityName' : 'MIAMI' ,
74- 'countryCode' : "US"
75- }
76-
77- )
78- ]
79-
80- with self .assertRaises (requests .exceptions .HTTPError ):
81- get_location ("8.8.8.8" )
82-
83-
84- result = get_location ("8.8.8.8" )
85- self .assertEqual (result .get ("country" ), "USA" )
86- self .assertEqual (result .get ("region" ), "Florida" )
87- self .assertEqual (result .get ("city" ), "MIAMI" )
88- self .assertEqual (result .get ("code" ), "US" )
89-
90-
91-
92-
93-
94-
95-
62+ status_code = 200 ,
63+ json = lambda : {
64+ "countryName" : "USA" ,
65+ "regionName" : "Florida" ,
66+ "cityName" : "MIAMI" ,
67+ "countryCode" : "US" ,
68+ },
69+ ),
70+ ]
71+
72+ with self .assertRaises (ValueError ):
73+ get_location ("8.8.0" )
0 commit comments