Issue #2202: Fix UnboundLocalError in AbstractDigestAuthHandler.get_algorithm_impls

Raise ValueError if algorithm is not MD5 or SHA.

Initial patch by Mathieu Dupuy.
diff --git a/Lib/test/test_urllib2.py b/Lib/test/test_urllib2.py
index 5a631b3..a6889cc 100644
--- a/Lib/test/test_urllib2.py
+++ b/Lib/test/test_urllib2.py
@@ -6,7 +6,7 @@
 import StringIO
 
 import urllib2
-from urllib2 import Request, OpenerDirector
+from urllib2 import Request, OpenerDirector, AbstractDigestAuthHandler
 
 try:
     import ssl
@@ -1290,6 +1290,16 @@
         else:
             self.assertTrue(False)
 
+    def test_unsupported_algorithm(self):
+        handler = AbstractDigestAuthHandler()
+        with self.assertRaises(ValueError) as exc:
+            handler.get_algorithm_impls('invalid')
+        self.assertEqual(
+            str(exc.exception),
+            "Unsupported digest authentication algorithm 'invalid'"
+        )
+
+
 class RequestTests(unittest.TestCase):
 
     def setUp(self):