]> jfr.im git - z_archive/twitter.git/blobdiff - tests/test_util.py
Add a test for API v1 unsupported. Other tests use v1.1 instead of v1.
[z_archive/twitter.git] / tests / test_util.py
index 322d11bcd240bc14923416dbc5d8d3a8bf4eeaba..b8efea92334b5b3e3ce446ba4ff512244aa2a36c 100644 (file)
@@ -1,19 +1,24 @@
-import BaseHTTPServer
 from collections import namedtuple
 import contextlib
 import functools
 import socket
-import SocketServer
 import threading
 from twitter.util import find_links, follow_redirects, expand_line, parse_host_list
 
+try:
+    import http.server as BaseHTTPServer
+    import socketserver as SocketServer
+except ImportError:
+    import BaseHTTPServer
+    import SocketServer
+
 
 def test_find_links():
     assert find_links("nix") == ("nix", [])
     assert find_links("http://abc") == ("%s", ["http://abc"])
     assert find_links("t http://abc") == ("t %s", ["http://abc"])
     assert find_links("http://abc t") == ("%s t", ["http://abc"])
-    assert find_links("1 http://a 2 http://b 3") == ("1 %s 2 %s 3", 
+    assert find_links("1 http://a 2 http://b 3") == ("1 %s 2 %s 3",
         ["http://a", "http://b"])
     assert find_links("%") == ("%%", [])
     assert find_links("(http://abc)") == ("(%s)", ["http://abc"])
@@ -25,20 +30,20 @@ Response = namedtuple('Response', 'path code headers')
 def start_server(*resp):
     """HTTP server replying with the given responses to the expected
     requests."""
-    def url(port, path): 
+    def url(port, path):
         return 'http://%s:%s%s' % (socket.gethostname(), port, path)
-    
+
     responses = list(reversed(resp))
-    
+
     class MyHandler(BaseHTTPServer.BaseHTTPRequestHandler):
         def do_HEAD(self):
             response = responses.pop()
             assert response.path == self.path
             self.send_response(response.code)
-            for header, value in response.headers.iteritems():
+            for header, value in list(response.headers.items()):
                 self.send_header(header, value)
             self.end_headers()
-            
+
     httpd = SocketServer.TCPServer(("", 0), MyHandler)
     t = threading.Thread(target=httpd.serve_forever)
     t.setDaemon(True)
@@ -46,7 +51,7 @@ def start_server(*resp):
     port = httpd.server_address[1]
     yield functools.partial(url, port)
     httpd.shutdown()
-    
+
 def test_follow_redirects_direct_link():
     link = "/resource"
     with start_server(Response(link, 200, {})) as url:
@@ -56,10 +61,10 @@ def test_follow_redirects_redirected_link():
     redirected = "/redirected"
     link = "/resource"
     with start_server(
-        Response(link, 301, {"Location": redirected}), 
+        Response(link, 301, {"Location": redirected}),
         Response(redirected, 200, {})) as url:
         assert url(redirected) == follow_redirects(url(link))
-        
+
 def test_follow_redirects_unavailable():
     link = "/resource"
     with start_server(Response(link, 404, {})) as url:
@@ -69,7 +74,7 @@ def test_follow_redirects_link_to_last_available():
     unavailable = "/unavailable"
     link = "/resource"
     with start_server(
-        Response(link, 301, {"Location": unavailable}), 
+        Response(link, 301, {"Location": unavailable}),
         Response(unavailable, 404, {})) as url:
         assert url(unavailable) == follow_redirects(url(link))
 
@@ -77,7 +82,7 @@ def test_follow_redirects_link_to_last_available():
 def test_follow_redirects_no_where():
     link = "http://links.nowhere/"
     assert link == follow_redirects(link)
-    
+
 def test_follow_redirects_link_to_nowhere():
     unavailable = "http://links.nowhere/"
     link = "/resource"
@@ -96,7 +101,7 @@ def test_follow_redirects_filtered_by_site_after_redirect():
     redirected = "/redirected"
     filtered = "http://dont-follow/"
     with start_server(
-        Response(link, 301, {"Location": redirected}), 
+        Response(link, 301, {"Location": redirected}),
         Response(redirected, 301, {"Location": filtered})) as url:
         hosts = [socket.gethostname()]
         assert filtered == follow_redirects(url(link), hosts)
@@ -105,7 +110,7 @@ def test_follow_redirects_filtered_by_site_allowed():
     redirected = "/redirected"
     link = "/resource"
     with start_server(
-        Response(link, 301, {"Location": redirected}), 
+        Response(link, 301, {"Location": redirected}),
         Response(redirected, 200, {})) as url:
         hosts = [socket.gethostname()]
         assert url(redirected) == follow_redirects(url(link), hosts)
@@ -114,7 +119,7 @@ def test_expand_line():
     redirected = "/redirected"
     link = "/resource"
     with start_server(
-        Response(link, 301, {"Location": redirected}), 
+        Response(link, 301, {"Location": redirected}),
         Response(redirected, 200, {})) as url:
         fmt = "before %s after"
         line = fmt % url(link)