def default_urllib2_opener(config):
if config is not None:
- proxy_server = config.get("http", "proxy")
+ try:
+ proxy_server = config.get("http", "proxy")
+ except KeyError:
+ proxy_server = None
else:
proxy_server = None
handlers = []
handlers.append(urllib2.ProxyHandler({"http": proxy_server}))
opener = urllib2.build_opener(*handlers)
if config is not None:
- user_agent = config.get("http", "useragent")
+ try:
+ user_agent = config.get("http", "useragent")
+ except KeyError:
+ user_agent = None
else:
user_agent = None
if user_agent is None:
import sys
import shutil
import tempfile
+import urllib2
try:
from urllib import quote as urlquote
ReportStatusParser,
SendPackError,
UpdateRefsError,
+ default_urllib2_opener,
get_transport_and_path,
get_transport_and_path_from_url,
)
+from dulwich.config import (
+ ConfigDict,
+ )
from dulwich.tests import (
TestCase,
)
url = c.get_url(path)
self.assertEqual('git://github.com:9090/jelmer/dulwich', url)
+
+
+class DefaultUrllib2OpenerTest(TestCase):
+
+ def test_no_config(self):
+ default_urllib2_opener(config=None)
+
+ def test_config_no_proxy(self):
+ default_urllib2_opener(config=ConfigDict())
+
+ def test_config_proxy(self):
+ config = ConfigDict()
+ config.set('http', 'proxy', 'http://localhost:3128/')
+ opener = default_urllib2_opener(config=config)
+ self.assertTrue(
+ any([isinstance(handler, urllib2.ProxyHandler)
+ for handler in opener.handlers]))