Fix Python 3.2 compatibility in tests
diff --git a/docs/community/faq.rst b/docs/community/faq.rst
index 4e792ecaf4..5b3ecb8157 100644
--- a/docs/community/faq.rst
+++ b/docs/community/faq.rst
@@ -59,7 +59,9 @@ supported:
 * Python 3.1
 * Python 3.2
 * Python 3.3
+* Python 3.4
 * PyPy 1.9
+* PyPy 2.2
 
 What are "hostname doesn't match" errors?
 -----------------------------------------
diff --git a/test_requests.py b/test_requests.py
index a92b22c69f..4871dc5109 100755
--- a/test_requests.py
+++ b/test_requests.py
@@ -16,7 +16,7 @@
 from requests.adapters import HTTPAdapter
 from requests.auth import HTTPDigestAuth
 from requests.compat import (
-    Morsel, cookielib, getproxies, str, urljoin, urlparse)
+    Morsel, cookielib, getproxies, str, urljoin, urlparse, is_py3)
 from requests.cookies import cookiejar_from_dict, morsel_to_cookie
 from requests.exceptions import InvalidURL, MissingSchema
 from requests.models import PreparedRequest, Response
@@ -30,6 +30,14 @@
 except ImportError:
     import io as StringIO
 
+if is_py3:
+    def u(s):
+        return s
+else:
+    def u(s):
+        return s.decode('unicode-escape')
+
+
 HTTPBIN = os.environ.get('HTTPBIN_URL', 'http://httpbin.org/')
 # Issue #1483: Make sure the URL always has a trailing slash
 HTTPBIN = HTTPBIN.rstrip('/') + '/'
@@ -409,7 +417,7 @@ def test_conflicting_post_params(self):
         url = httpbin('post')
         with open('requirements.txt') as f:
             pytest.raises(ValueError, "requests.post(url, data='[{\"some\": \"data\"}]', files={'some': f})")
-            pytest.raises(ValueError, "requests.post(url, data=u'[{\"some\": \"data\"}]', files={'some': f})")
+            pytest.raises(ValueError, "requests.post(url, data=u('[{\"some\": \"data\"}]'), files={'some': f})")
 
     def test_request_ok_set(self):
         r = requests.get(httpbin('status', '404'))
@@ -456,12 +464,12 @@ def test_different_encodings_dont_break_post(self):
 
     def test_unicode_multipart_post(self):
         r = requests.post(httpbin('post'),
-                          data={'stuff': u'ëlïxr'},
+                          data={'stuff': u('ëlïxr')},
                           files={'file': ('test_requests.py', open(__file__, 'rb'))})
         assert r.status_code == 200
 
         r = requests.post(httpbin('post'),
-                          data={'stuff': u'ëlïxr'.encode('utf-8')},
+                          data={'stuff': u('ëlïxr').encode('utf-8')},
                           files={'file': ('test_requests.py', open(__file__, 'rb'))})
         assert r.status_code == 200
 
@@ -488,7 +496,7 @@ def test_unicode_multipart_post_fieldnames(self):
 
     def test_unicode_method_name(self):
         files = {'file': open('test_requests.py', 'rb')}
-        r = requests.request(method=u'POST', url=httpbin('post'), files=files)
+        r = requests.request(method=u('POST'), url=httpbin('post'), files=files)
         assert r.status_code == 200
 
     def test_custom_content_type(self):
@@ -865,7 +873,7 @@ def test_long_authinfo_in_url(self):
         assert r.url == url
 
     def test_header_keys_are_native(self):
-        headers = {u'unicode': 'blah', 'byte'.encode('ascii'): 'blah'}
+        headers = {u('unicode'): 'blah', 'byte'.encode('ascii'): 'blah'}
         r = requests.Request('GET', httpbin('get'), headers=headers)
         p = r.prepare()
 

The FAQ says that requests is compatible with Python 3.2. However, I could not execute the tests using that Python version. This PR fixes this and updated the FAQ to match.
