@@ -42,42 +42,57 @@ def test_load_provider_from_env(monkeypatch, uri, expected_type, expected_attrs)
42
42
assert getattr (provider , attr ) == val
43
43
44
44
45
- def test_web3_auto_infura_empty_key (monkeypatch , caplog ):
46
- monkeypatch .setenv ('INFURA_API_KEY' , '' )
45
+ @pytest .mark .parametrize ('environ_name' , ['INFURA_API_KEY' , 'WEB3_INFURA_API_KEY' ])
46
+ def test_web3_auto_infura_empty_key (monkeypatch , caplog , environ_name ):
47
+ monkeypatch .setenv ('WEB3_INFURA_SCHEME' , 'https' )
48
+ monkeypatch .setenv (environ_name , '' )
47
49
48
50
importlib .reload (infura )
49
51
assert len (caplog .record_tuples ) == 1
50
52
logger , level , msg = caplog .record_tuples [0 ]
51
- assert 'INFURA_API_KEY ' in msg
53
+ assert 'WEB3_INFURA_API_KEY ' in msg
52
54
assert level == logging .WARNING
53
55
54
56
w3 = infura .w3
55
57
assert isinstance (w3 .providers [0 ], HTTPProvider )
56
- assert getattr (w3 .providers [0 ], 'endpoint_uri' ) == infura .INFURA_MAINNET_BASE_URL
58
+ assert getattr (w3 .providers [0 ], 'endpoint_uri' ) == 'https://mainnet. infura.io/'
57
59
58
60
59
- def test_web3_auto_infura_missing_key (monkeypatch , caplog ):
60
- monkeypatch .delenv ('INFURA_API_KEY' , raising = False )
61
+ @pytest .mark .parametrize ('environ_name' , ['INFURA_API_KEY' , 'WEB3_INFURA_API_KEY' ])
62
+ def test_web3_auto_infura_deleted_key (monkeypatch , caplog , environ_name ):
63
+ monkeypatch .setenv ('WEB3_INFURA_SCHEME' , 'https' )
64
+ monkeypatch .delenv (environ_name , raising = False )
61
65
62
66
importlib .reload (infura )
63
67
assert len (caplog .record_tuples ) == 1
64
68
logger , level , msg = caplog .record_tuples [0 ]
65
- assert 'INFURA_API_KEY ' in msg
69
+ assert 'WEB3_INFURA_API_KEY ' in msg
66
70
assert level == logging .WARNING
67
71
68
72
w3 = infura .w3
69
73
assert isinstance (w3 .providers [0 ], HTTPProvider )
70
- assert getattr (w3 .providers [0 ], 'endpoint_uri' ) == infura .INFURA_MAINNET_BASE_URL
74
+ assert getattr (w3 .providers [0 ], 'endpoint_uri' ) == 'https://mainnet. infura.io/'
71
75
72
76
73
- def test_web3_auto_infura (monkeypatch , caplog ):
77
+ @pytest .mark .parametrize ('environ_name' , ['INFURA_API_KEY' , 'WEB3_INFURA_API_KEY' ])
78
+ def test_web3_auto_infura (monkeypatch , caplog , environ_name ):
79
+ monkeypatch .setenv ('WEB3_INFURA_SCHEME' , 'https' )
74
80
API_KEY = 'aoeuhtns'
75
- monkeypatch .setenv ('INFURA_API_KEY' , API_KEY )
76
- expected_url = '%s/%s' % (infura .INFURA_MAINNET_BASE_URL , API_KEY )
81
+ monkeypatch .setenv (environ_name , API_KEY )
82
+ expected_url = 'https:// %s/%s' % (infura .INFURA_MAINNET_DOMAIN , API_KEY )
77
83
78
84
importlib .reload (infura )
79
85
assert len (caplog .record_tuples ) == 0
80
86
81
87
w3 = infura .w3
82
88
assert isinstance (w3 .providers [0 ], HTTPProvider )
83
89
assert getattr (w3 .providers [0 ], 'endpoint_uri' ) == expected_url
90
+
91
+
92
+ def test_web3_auto_infura_websocket_default (caplog ):
93
+ importlib .reload (infura )
94
+ assert len (caplog .record_tuples ) == 0
95
+
96
+ w3 = infura .w3
97
+ assert isinstance (w3 .providers [0 ], WebsocketProvider )
98
+ assert getattr (w3 .providers [0 ], 'endpoint_uri' ) == 'wss://mainnet.infura.io/ws'
0 commit comments