@@ -24,122 +24,120 @@ def patched_apify_client(apify_client_async_patcher: ApifyClientAsyncPatcher) ->
24
24
return ApifyClientAsync ()
25
25
26
26
27
- class TestActorCreateProxyConfiguration :
28
- async def test_create_proxy_configuration_basic (
29
- self : TestActorCreateProxyConfiguration ,
30
- monkeypatch : pytest .MonkeyPatch ,
31
- respx_mock : MockRouter ,
32
- patched_apify_client : ApifyClientAsync ,
33
- ) -> None :
34
- dummy_proxy_status_url = 'http://dummy-proxy-status-url.com'
35
- monkeypatch .setenv (ApifyEnvVars .TOKEN .value , 'DUMMY_TOKEN' )
36
- monkeypatch .setenv (ApifyEnvVars .PROXY_STATUS_URL .value , dummy_proxy_status_url )
37
-
38
- route = respx_mock .get (dummy_proxy_status_url )
39
- route .mock (
40
- httpx .Response (
41
- 200 ,
42
- json = {
43
- 'connected' : True ,
44
- 'connectionError' : None ,
45
- 'isManInTheMiddle' : True ,
46
- },
47
- )
27
+ async def test_basic_proxy_configuration_creation (
28
+ monkeypatch : pytest .MonkeyPatch ,
29
+ respx_mock : MockRouter ,
30
+ patched_apify_client : ApifyClientAsync ,
31
+ ) -> None :
32
+ dummy_proxy_status_url = 'http://dummy-proxy-status-url.com'
33
+ monkeypatch .setenv (ApifyEnvVars .TOKEN .value , 'DUMMY_TOKEN' )
34
+ monkeypatch .setenv (ApifyEnvVars .PROXY_STATUS_URL .value , dummy_proxy_status_url )
35
+
36
+ route = respx_mock .get (dummy_proxy_status_url )
37
+ route .mock (
38
+ httpx .Response (
39
+ 200 ,
40
+ json = {
41
+ 'connected' : True ,
42
+ 'connectionError' : None ,
43
+ 'isManInTheMiddle' : True ,
44
+ },
48
45
)
46
+ )
49
47
50
- groups = ['GROUP1' , 'GROUP2' ]
51
- country_code = 'US'
52
-
53
- await Actor .init ()
54
-
55
- proxy_configuration = await Actor .create_proxy_configuration (groups = groups , country_code = country_code )
56
-
57
- assert proxy_configuration is not None
58
- assert proxy_configuration ._groups == groups
59
- assert proxy_configuration ._password == DUMMY_PASSWORD
60
- assert proxy_configuration ._country_code == country_code
61
-
62
- assert len (patched_apify_client .calls ['user' ]['get' ]) == 1 # type: ignore
63
- assert len (route .calls ) == 1
64
-
65
- await Actor .exit ()
66
-
67
- async def test_create_proxy_configuration_actor_proxy_input (
68
- self : TestActorCreateProxyConfiguration ,
69
- monkeypatch : pytest .MonkeyPatch ,
70
- respx_mock : MockRouter ,
71
- patched_apify_client : ApifyClientAsync ,
72
- ) -> None :
73
- dummy_proxy_status_url = 'http://dummy-proxy-status-url.com'
74
- dummy_proxy_url = 'http://dummy-proxy.com:8000'
75
-
76
- monkeypatch .setenv (ApifyEnvVars .TOKEN .value , 'DUMMY_TOKEN' )
77
- monkeypatch .setenv (ApifyEnvVars .PROXY_STATUS_URL .value , dummy_proxy_status_url )
78
-
79
- route = respx_mock .get (dummy_proxy_status_url )
80
- route .mock (
81
- httpx .Response (
82
- 200 ,
83
- json = {
84
- 'connected' : True ,
85
- 'connectionError' : None ,
86
- 'isManInTheMiddle' : True ,
87
- },
88
- )
89
- )
48
+ groups = ['GROUP1' , 'GROUP2' ]
49
+ country_code = 'US'
90
50
91
- await Actor .init ()
51
+ await Actor .init ()
92
52
93
- proxy_configuration = await Actor .create_proxy_configuration (actor_proxy_input = {})
94
- assert proxy_configuration is None
53
+ proxy_configuration = await Actor .create_proxy_configuration (groups = groups , country_code = country_code )
95
54
96
- proxy_configuration = await Actor .create_proxy_configuration (
97
- actor_proxy_input = {
98
- 'useApifyProxy' : False ,
99
- }
100
- )
101
- assert proxy_configuration is None
55
+ assert proxy_configuration is not None
56
+ assert proxy_configuration ._groups == groups
57
+ assert proxy_configuration ._password == DUMMY_PASSWORD
58
+ assert proxy_configuration ._country_code == country_code
102
59
103
- proxy_configuration = await Actor .create_proxy_configuration (
104
- actor_proxy_input = {
105
- 'proxyUrls' : [],
106
- }
107
- )
108
- assert proxy_configuration is None
60
+ assert len (patched_apify_client .calls ['user' ]['get' ]) == 1 # type: ignore
61
+ assert len (route .calls ) == 1
109
62
110
- proxy_configuration = await Actor .create_proxy_configuration (
111
- actor_proxy_input = {
112
- 'useApifyProxy' : False ,
113
- 'proxyUrls' : [dummy_proxy_url ],
114
- }
115
- )
116
- assert proxy_configuration is not None
117
- assert await proxy_configuration .new_url () == dummy_proxy_url
63
+ await Actor .exit ()
118
64
119
- proxy_configuration = await Actor .create_proxy_configuration (
120
- actor_proxy_input = {
121
- 'useApifyProxy' : True ,
122
- }
123
- )
124
- assert proxy_configuration is not None
125
- assert await proxy_configuration .new_url () == f'http://auto:{ DUMMY_PASSWORD } @proxy.apify.com:8000'
126
-
127
- groups = ['GROUP1' , 'GROUP2' ]
128
- country_code = 'US'
129
- proxy_configuration = await Actor .create_proxy_configuration (
130
- actor_proxy_input = {
131
- 'useApifyProxy' : True ,
132
- 'apifyProxyGroups' : groups ,
133
- 'apifyProxyCountry' : country_code ,
134
- }
135
- )
136
- assert proxy_configuration is not None
137
- assert (
138
- await proxy_configuration .new_url ()
139
- == f'http://groups-{ "+" .join (groups )} ,country-{ country_code } :{ DUMMY_PASSWORD } @proxy.apify.com:8000'
140
- )
141
65
142
- assert len (patched_apify_client .calls ['user' ]['get' ]) == 2 # type: ignore
143
- assert len (route .calls ) == 2
66
+ async def test_proxy_configuration_with_actor_proxy_input (
67
+ monkeypatch : pytest .MonkeyPatch ,
68
+ respx_mock : MockRouter ,
69
+ patched_apify_client : ApifyClientAsync ,
70
+ ) -> None :
71
+ dummy_proxy_status_url = 'http://dummy-proxy-status-url.com'
72
+ dummy_proxy_url = 'http://dummy-proxy.com:8000'
144
73
145
- await Actor .exit ()
74
+ monkeypatch .setenv (ApifyEnvVars .TOKEN .value , 'DUMMY_TOKEN' )
75
+ monkeypatch .setenv (ApifyEnvVars .PROXY_STATUS_URL .value , dummy_proxy_status_url )
76
+
77
+ route = respx_mock .get (dummy_proxy_status_url )
78
+ route .mock (
79
+ httpx .Response (
80
+ 200 ,
81
+ json = {
82
+ 'connected' : True ,
83
+ 'connectionError' : None ,
84
+ 'isManInTheMiddle' : True ,
85
+ },
86
+ )
87
+ )
88
+
89
+ await Actor .init ()
90
+
91
+ proxy_configuration = await Actor .create_proxy_configuration (actor_proxy_input = {})
92
+ assert proxy_configuration is None
93
+
94
+ proxy_configuration = await Actor .create_proxy_configuration (
95
+ actor_proxy_input = {
96
+ 'useApifyProxy' : False ,
97
+ }
98
+ )
99
+ assert proxy_configuration is None
100
+
101
+ proxy_configuration = await Actor .create_proxy_configuration (
102
+ actor_proxy_input = {
103
+ 'proxyUrls' : [],
104
+ }
105
+ )
106
+ assert proxy_configuration is None
107
+
108
+ proxy_configuration = await Actor .create_proxy_configuration (
109
+ actor_proxy_input = {
110
+ 'useApifyProxy' : False ,
111
+ 'proxyUrls' : [dummy_proxy_url ],
112
+ }
113
+ )
114
+ assert proxy_configuration is not None
115
+ assert await proxy_configuration .new_url () == dummy_proxy_url
116
+
117
+ proxy_configuration = await Actor .create_proxy_configuration (
118
+ actor_proxy_input = {
119
+ 'useApifyProxy' : True ,
120
+ }
121
+ )
122
+ assert proxy_configuration is not None
123
+ assert await proxy_configuration .new_url () == f'http://auto:{ DUMMY_PASSWORD } @proxy.apify.com:8000'
124
+
125
+ groups = ['GROUP1' , 'GROUP2' ]
126
+ country_code = 'US'
127
+ proxy_configuration = await Actor .create_proxy_configuration (
128
+ actor_proxy_input = {
129
+ 'useApifyProxy' : True ,
130
+ 'apifyProxyGroups' : groups ,
131
+ 'apifyProxyCountry' : country_code ,
132
+ }
133
+ )
134
+ assert proxy_configuration is not None
135
+ assert (
136
+ await proxy_configuration .new_url ()
137
+ == f'http://groups-{ "+" .join (groups )} ,country-{ country_code } :{ DUMMY_PASSWORD } @proxy.apify.com:8000'
138
+ )
139
+
140
+ assert len (patched_apify_client .calls ['user' ]['get' ]) == 2 # type: ignore
141
+ assert len (route .calls ) == 2
142
+
143
+ await Actor .exit ()
0 commit comments