6
6
import pandas as pd
7
7
from predictit_markets .predictit_markets import all_markets , market_data
8
8
9
+
9
10
class TestPredictItMarkets (unittest .TestCase ):
10
11
11
- @patch (' predictit_markets.predictit_markets.requests.get' )
12
+ @patch (" predictit_markets.predictit_markets.requests.get" )
12
13
def test_market_data_success (self , mock_get ):
13
14
# Simulate a successful API response
14
15
mock_response = Mock ()
15
16
mock_response .status_code = 200
16
17
mock_response .json .return_value = [
17
- {'marketId' : 8089 , 'contractId' : 31414 , 'contractName' : 'Shapiro' , 'date' : '2024-07-26T00:00:00' , 'dateString' : '2024-07-26' , 'openSharePrice' : 0.26 , 'highSharePrice' : 0.34 , 'lowSharePrice' : 0.25 , 'closeSharePrice' : 0.31 , 'tradeVolume' : 160257 , 'lineColor' : '#0D8ECF' }
18
+ {
19
+ "marketId" : 8089 ,
20
+ "contractId" : 31414 ,
21
+ "contractName" : "Shapiro" ,
22
+ "date" : "2024-07-26T00:00:00" ,
23
+ "dateString" : "2024-07-26" ,
24
+ "openSharePrice" : 0.26 ,
25
+ "highSharePrice" : 0.34 ,
26
+ "lowSharePrice" : 0.25 ,
27
+ "closeSharePrice" : 0.31 ,
28
+ "tradeVolume" : 160257 ,
29
+ "lineColor" : "#0D8ECF" ,
30
+ }
18
31
# Add more sample data here if needed
19
32
]
20
33
mock_get .return_value = mock_response
@@ -25,13 +38,15 @@ def test_market_data_success(self, mock_get):
25
38
# Assert the DataFrame is not None and contains the expected data
26
39
self .assertIsNotNone (df )
27
40
self .assertEqual (len (df ), 1 )
28
- self .assertEqual (df .iloc [0 ][' contractName' ], ' Shapiro' )
41
+ self .assertEqual (df .iloc [0 ][" contractName" ], " Shapiro" )
29
42
30
- @patch (' predictit_markets.predictit_markets.requests.get' )
43
+ @patch (" predictit_markets.predictit_markets.requests.get" )
31
44
def test_market_data_http_error (self , mock_get ):
32
45
# Simulate an HTTP error response
33
46
mock_response = Mock ()
34
- mock_response .raise_for_status .side_effect = requests .exceptions .HTTPError ("404 Client Error: Not Found" )
47
+ mock_response .raise_for_status .side_effect = requests .exceptions .HTTPError (
48
+ "404 Client Error: Not Found"
49
+ )
35
50
mock_get .return_value = mock_response
36
51
37
52
# Test the market_data function
@@ -40,7 +55,7 @@ def test_market_data_http_error(self, mock_get):
40
55
# Assert the DataFrame is None due to the error
41
56
self .assertIsNone (df )
42
57
43
- @patch (' predictit_markets.predictit_markets.requests.get' )
58
+ @patch (" predictit_markets.predictit_markets.requests.get" )
44
59
def test_market_data_request_exception (self , mock_get ):
45
60
# Simulate a request exception
46
61
mock_get .side_effect = requests .exceptions .RequestException ("Network error" )
@@ -51,7 +66,7 @@ def test_market_data_request_exception(self, mock_get):
51
66
# Assert the DataFrame is None due to the exception
52
67
self .assertIsNone (df )
53
68
54
- @patch (' predictit_markets.predictit_markets.requests.get' )
69
+ @patch (" predictit_markets.predictit_markets.requests.get" )
55
70
def test_market_data_json_error (self , mock_get ):
56
71
# Simulate a JSON decoding error
57
72
mock_response = Mock ()
@@ -64,27 +79,28 @@ def test_market_data_json_error(self, mock_get):
64
79
65
80
# Assert the DataFrame is None due to JSON error
66
81
self .assertIsNone (df )
67
-
68
- @patch (' predictit_markets.requests.get' )
82
+
83
+ @patch (" predictit_markets.requests.get" )
69
84
def test_all_markets_success (self , mock_get ):
70
85
mock_get .return_value .status_code = 200
71
86
mock_get .return_value .json .return_value = {
72
- ' markets' : [
73
- { 'id' : 123 , ' name' : ' Market 1' },
74
- { 'id' : 456 , ' name' : ' Market 2' },
87
+ " markets" : [
88
+ { "id" : 123 , " name" : " Market 1" },
89
+ { "id" : 456 , " name" : " Market 2" },
75
90
]
76
91
}
77
92
78
93
df = all_markets ()
79
94
80
-
81
- expected_df = pd .DataFrame ([
82
- {'Market ID' : 123 , 'Market Name' : 'Market 1' },
83
- {'Market ID' : 456 , 'Market Name' : 'Market 2' },
84
- ])
95
+ expected_df = pd .DataFrame (
96
+ [
97
+ {"Market ID" : 123 , "Market Name" : "Market 1" },
98
+ {"Market ID" : 456 , "Market Name" : "Market 2" },
99
+ ]
100
+ )
85
101
86
102
pd .testing .assert_frame_equal (df , expected_df )
87
103
88
104
89
- if __name__ == ' __main__' :
105
+ if __name__ == " __main__" :
90
106
unittest .main ()
0 commit comments