129
129
lambda _: fake_output)
130
130
ps = gsettings.get_proxy_settings()
131
131
self.assertEqual(ps, expected)
133
def test_gsettings_parser_authenticated_url(self):
134
"""Test a parser of gsettings with creds in the url."""
135
template_values = dict(BASE_GSETTINGS_VALUES)
136
expected_host = "expected_host"
137
expected_port = 54321
138
expected_user = "carlitos"
139
expected_password = "very secret password"
140
composed_url = '%s:%s@%s' % (expected_user, expected_password,
143
"host": expected_host,
144
"port": expected_port,
145
"username": expected_user,
146
"password": expected_password,
148
template_values.update({
150
"http_host": composed_url,
151
"http_port": expected_port,
152
"http_use_auth": "false",
154
fake_output = TEMPLATE_GSETTINGS_OUTPUT.format(**template_values)
155
self.patch(gsettings.subprocess, "check_output",
156
lambda _: fake_output)
157
ps = gsettings.get_proxy_settings()
158
self.assertEqual(ps, expected)
160
def test_gsettings_auth_over_url(self):
161
"""Test that the settings are more important that the url."""
162
template_values = dict(BASE_GSETTINGS_VALUES)
163
expected_host = "expected_host"
164
expected_port = 54321
165
expected_user = "carlitos"
166
expected_password = "very secret password"
167
composed_url = '%s:%s@%s' % ('user', 'random',
170
"host": expected_host,
171
"port": expected_port,
172
"username": expected_user,
173
"password": expected_password,
175
template_values.update({
177
"http_host": composed_url,
178
"http_port": expected_port,
179
"auth_user": expected_user,
180
"auth_password": expected_password,
181
"http_use_auth": "true",
183
fake_output = TEMPLATE_GSETTINGS_OUTPUT.format(**template_values)
184
self.patch(gsettings.subprocess, "check_output",
185
lambda _: fake_output)
186
ps = gsettings.get_proxy_settings()
187
self.assertEqual(ps, expected)
190
class ParseProxyHostTestCase(TestCase):
191
"""Test the parsing of the domain."""
193
def test_onlyhost(self):
194
"""Parse a host with no username or password."""
196
hostname, username, password = gsettings.parse_proxy_host(sample)
197
self.assertEqual(username, None)
198
self.assertEqual(password, None)
199
self.assertEqual(hostname, "hostname")
201
def test_user_and_host(self):
202
"""Parse host just with the username."""
203
sample = "username@hostname"
204
hostname, username, password = gsettings.parse_proxy_host(sample)
205
self.assertEqual(username, "username")
206
self.assertEqual(password, None)
207
self.assertEqual(hostname, "hostname")
209
def test_user_pass_and_host(self):
210
"""Test parsing a host with a username and password."""
211
sample = "username:password@hostname"
212
hostname, username, password = gsettings.parse_proxy_host(sample)
213
self.assertEqual(username, "username")
214
self.assertEqual(password, "password")
215
self.assertEqual(hostname, "hostname")
217
def test_username_with_at(self):
218
"""Test parsing the host with a username with @."""
219
sample = "username@company.com:password@hostname"
220
hostname, username, password = gsettings.parse_proxy_host(sample)
221
self.assertEqual(username, "username@company.com")
222
self.assertEqual(password, "password")
223
self.assertEqual(hostname, "hostname")
225
def test_username_with_at_nopass(self):
226
"""Test parsing the host without a password."""
227
sample = "username@company.com@hostname"
228
hostname, username, password = gsettings.parse_proxy_host(sample)
229
self.assertEqual(username, "username@company.com")
230
self.assertEqual(password, None)
231
self.assertEqual(hostname, "hostname")
233
def test_user_pass_with_colon_and_host(self):
234
"""Test parsing the host with a password that contains :."""
235
sample = "username:pass:word@hostname"
236
hostname, username, password = gsettings.parse_proxy_host(sample)
237
self.assertEqual(username, "username")
238
self.assertEqual(password, "pass:word")
239
self.assertEqual(hostname, "hostname")