dict.has_key(key) --> key in dict, new style exceptions (#81)

* Modernize Python 2 code to get ready for Python 3

* Remove absolute imports

* remove absolute imports II

* from __future__ import print_function
diff --git a/python2/httplib2test.py b/python2/httplib2test.py
index 472424b..82faabc 100755
--- a/python2/httplib2test.py
+++ b/python2/httplib2test.py
@@ -267,7 +267,7 @@
             uri = urlparse.urljoin(base, u"reflector/reflector.cgi?d=\N{CYRILLIC CAPITAL LETTER DJE}")
             (response, content) = self.http.request(uri, "GET")
             d = self.reflector(content)
-            self.assertTrue(d.has_key('QUERY_STRING'))
+            self.assertTrue('QUERY_STRING' in d)
             self.assertTrue(d['QUERY_STRING'].find('%D0%82') > 0)
 
     def testGetIsDefaultMethod(self):
@@ -381,7 +381,7 @@
         destination = urlparse.urljoin(base, "302/final-destination.txt")
         (response, content) = self.http.request(uri, "GET")
         self.assertEqual(response.status, 200)
-        self.assertTrue(response.has_key('content-location'))
+        self.assertTrue('content-location' in response)
         self.assertEqual(response['content-location'], destination)
         self.assertEqual(content, "This is the final destination.\n")
         self.assertEqual(response.previous.status, 301)
@@ -456,7 +456,7 @@
             self.fail("This should not happen")
         except httplib2.RedirectLimit:
             pass
-        except Exception, e:
+        except Exception as e:
             self.fail("Threw wrong kind of exception ")
 
         # Re-run the test with out the exceptions
@@ -479,7 +479,7 @@
             self.fail("Should never reach here")
         except httplib2.RedirectMissingLocation:
             pass
-        except Exception, e:
+        except Exception as e:
             self.fail("Threw wrong kind of exception ")
 
         # Re-run the test with out the exceptions
@@ -639,13 +639,13 @@
 
         (response, content) = self.http.request(uri, "GET", headers = {'accept-encoding': 'identity', 'cache-control': 'max-age=0'})
         d = self.reflector(content)
-        self.assertTrue(d.has_key('HTTP_IF_NONE_MATCH'))
+        self.assertTrue('HTTP_IF_NONE_MATCH' in d)
 
         self.http.ignore_etag = True
         (response, content) = self.http.request(uri, "GET", headers = {'accept-encoding': 'identity', 'cache-control': 'max-age=0'})
         d = self.reflector(content)
         self.assertEqual(response.fromcache, False)
-        self.assertFalse(d.has_key('HTTP_IF_NONE_MATCH'))
+        self.assertFalse('HTTP_IF_NONE_MATCH' in d)
 
     def testOverrideEtag(self):
         # Test that we can forcibly ignore ETags
@@ -655,12 +655,12 @@
 
         (response, content) = self.http.request(uri, "GET", headers = {'accept-encoding': 'identity', 'cache-control': 'max-age=0'})
         d = self.reflector(content)
-        self.assertTrue(d.has_key('HTTP_IF_NONE_MATCH'))
+        self.assertTrue('HTTP_IF_NONE_MATCH' in d)
         self.assertNotEqual(d['HTTP_IF_NONE_MATCH'], "fred")
 
         (response, content) = self.http.request(uri, "GET", headers = {'accept-encoding': 'identity', 'cache-control': 'max-age=0', 'if-none-match': 'fred'})
         d = self.reflector(content)
-        self.assertTrue(d.has_key('HTTP_IF_NONE_MATCH'))
+        self.assertTrue('HTTP_IF_NONE_MATCH' in d)
         self.assertEqual(d['HTTP_IF_NONE_MATCH'], "fred")
 
 #MAP-commented this out because it consistently fails
@@ -728,7 +728,7 @@
         uri = urlparse.urljoin(base, "vary/accept.asis")
         (response, content) = self.http.request(uri, "GET", headers={'Accept': 'text/plain'})
         self.assertEqual(response.status, 200)
-        self.assertTrue(response.has_key('vary'))
+        self.assertTrue('vary' in response)
 
         # get the resource again, from the cache since accept header in this
         # request is the same as the request
@@ -769,7 +769,7 @@
         (response, content) = self.http.request(uri, "GET", headers={
             'Accept': 'text/plain', 'Accept-Language': 'da, en-gb;q=0.8, en;q=0.7'})
         self.assertEqual(response.status, 200)
-        self.assertTrue(response.has_key('vary'))
+        self.assertTrue('vary' in response)
 
         # we are from cache
         (response, content) = self.http.request(uri, "GET", headers={
@@ -791,7 +791,7 @@
         (response, content) = self.http.request(uri, "GET", headers={
             'Accept': 'text/plain'})
         self.assertEqual(response.status, 200)
-        self.assertTrue(response.has_key('vary'))
+        self.assertTrue('vary' in response)
 
         # we are from cache
         (response, content) = self.http.request(uri, "GET", headers={
@@ -812,8 +812,8 @@
         uri = urlparse.urljoin(base, "gzip/final-destination.txt")
         (response, content) = self.http.request(uri, "GET")
         self.assertEqual(response.status, 200)
-        self.assertFalse(response.has_key('content-encoding'))
-        self.assertTrue(response.has_key('-content-encoding'))
+        self.assertFalse('content-encoding' in response)
+        self.assertTrue('-content-encoding' in response)
         self.assertEqual(int(response['content-length']), len("This is the final destination.\n"))
         self.assertEqual(content, "This is the final destination.\n")
 
@@ -821,8 +821,8 @@
         uri = urlparse.urljoin(base, "gzip/post.cgi")
         (response, content) = self.http.request(uri, "POST", body=" ")
         self.assertEqual(response.status, 200)
-        self.assertFalse(response.has_key('content-encoding'))
-        self.assertTrue(response.has_key('-content-encoding'))
+        self.assertFalse('content-encoding' in response)
+        self.assertTrue('-content-encoding' in response)
 
     def testGetGZipFailure(self):
         # Test that we raise a good exception when the gzip fails
@@ -877,7 +877,7 @@
         uri = urlparse.urljoin(base, "deflate/deflated.asis")
         (response, content) = self.http.request(uri, "GET")
         self.assertEqual(response.status, 200)
-        self.assertFalse(response.has_key('content-encoding'))
+        self.assertFalse('content-encoding' in response)
         self.assertEqual(int(response['content-length']), len("This is the final destination."))
         self.assertEqual(content, "This is the final destination.")
 
@@ -1170,7 +1170,7 @@
         info2 = httplib2._parse_www_authenticate(response, 'authentication-info')
         self.assertEqual(response.status, 200)
 
-        if info.has_key('nextnonce'):
+        if 'nextnonce' in info:
             self.assertEqual(info2['nc'], 1)
 
     def testDigestAuthStale(self):
@@ -1197,7 +1197,7 @@
         uri = urlparse.urljoin(base, "reflector/reflector.cgi")
         (response, content) = self.http.request(uri, "GET")
         d = self.reflector(content)
-        self.assertTrue(d.has_key('HTTP_USER_AGENT'))
+        self.assertTrue('HTTP_USER_AGENT' in d)
 
     def testConnectionClose(self):
         uri = "http://www.google.com/"
@@ -1287,8 +1287,8 @@
     def testNormalizeHeaders(self):
         # Test that we normalize headers to lowercase
         h = httplib2._normalize_headers({'Cache-Control': 'no-cache', 'Other': 'Stuff'})
-        self.assertTrue(h.has_key('cache-control'))
-        self.assertTrue(h.has_key('other'))
+        self.assertTrue('cache-control' in h)
+        self.assertTrue('other' in h)
         self.assertEqual('Stuff', h['other'])
 
     def testExpirationModelTransparent(self):