diff --git a/test/py/FastbinaryTest.py b/test/py/FastbinaryTest.py
index 05c0bb6..f680357 100755
--- a/test/py/FastbinaryTest.py
+++ b/test/py/FastbinaryTest.py
@@ -25,8 +25,6 @@
 
 # TODO(dreiss): Test error cases.  Check for memory leaks.
 
-from __future__ import print_function
-
 import math
 import os
 import sys
@@ -68,15 +66,11 @@
 ooe2.integer64 = 64
 ooe2.double_precision = (math.sqrt(5) + 1) / 2
 ooe2.some_characters = ":R (me going \"rrrr\")"
-ooe2.zomg_unicode = u"\xd3\x80\xe2\x85\xae\xce\x9d\x20"\
-                    u"\xd0\x9d\xce\xbf\xe2\x85\xbf\xd0\xbe"\
-                    u"\xc9\xa1\xd0\xb3\xd0\xb0\xcf\x81\xe2\x84\x8e"\
-                    u"\x20\xce\x91\x74\x74\xce\xb1\xe2\x85\xbd\xce\xba"\
-                    u"\xc7\x83\xe2\x80\xbc"
-
-if sys.version_info[0] == 2 and os.environ.get('THRIFT_TEST_PY_NO_UTF8STRINGS'):
-    ooe1.zomg_unicode = ooe1.zomg_unicode.encode('utf8')
-    ooe2.zomg_unicode = ooe2.zomg_unicode.encode('utf8')
+ooe2.zomg_unicode = "\xd3\x80\xe2\x85\xae\xce\x9d\x20"\
+                    "\xd0\x9d\xce\xbf\xe2\x85\xbf\xd0\xbe"\
+                    "\xc9\xa1\xd0\xb3\xd0\xb0\xcf\x81\xe2\x84\x8e"\
+                    "\x20\xce\x91\x74\x74\xce\xb1\xe2\x85\xbd\xce\xba"\
+                    "\xc7\x83\xe2\x80\xbc"
 
 hm = HolyMoley(**{"big": [], "contain": set(), "bonks": {}})
 hm.big.append(ooe1)
@@ -86,10 +80,7 @@
 
 hm.contain.add(("and a one", "and a two"))
 hm.contain.add(("then a one, two", "three!", "FOUR!"))
-if sys.version_info[0] == 2 and os.environ.get('THRIFT_TEST_PY_NO_UTF8STRINGS'):
-    hm.contain.add((u"\xd7\n\a\t".encode('utf8'),))
-else:
-    hm.contain.add((u"\xd7\n\a\t",))
+hm.contain.add(("\xd7\n\a\t",))
 hm.contain.add(())
 
 hm.bonks["nothing"] = []
diff --git a/test/py/RunClientServer.py b/test/py/RunClientServer.py
index 583d88a..f48224f 100755
--- a/test/py/RunClientServer.py
+++ b/test/py/RunClientServer.py
@@ -19,8 +19,6 @@
 # under the License.
 #
 
-from __future__ import division
-from __future__ import print_function
 import platform
 import copy
 import os
diff --git a/test/py/SerializationTest.py b/test/py/SerializationTest.py
index f47c3d4..218f26c 100755
--- a/test/py/SerializationTest.py
+++ b/test/py/SerializationTest.py
@@ -278,9 +278,6 @@
         self.assertTrue(len(rep) > 0)
 
     def testIntegerLimits(self):
-        if (sys.version_info[0] == 2 and sys.version_info[1] <= 6):
-            print('Skipping testIntegerLimits for Python 2.6')
-            return
         bad_values = [CompactProtoTestStruct(a_byte=128), CompactProtoTestStruct(a_byte=-129),
                       CompactProtoTestStruct(a_i16=32768), CompactProtoTestStruct(a_i16=-32769),
                       CompactProtoTestStruct(a_i32=2147483648), CompactProtoTestStruct(a_i32=-2147483649),
diff --git a/test/py/TestClient.py b/test/py/TestClient.py
index 61a9c60..d80ddf4 100755
--- a/test/py/TestClient.py
+++ b/test/py/TestClient.py
@@ -106,9 +106,6 @@
         Türkçe, Татарча/Tatarça, Українська, اردو, Tiếng Việt, Volapük,
         Walon, Winaray, 吴语, isiXhosa, ייִדיש, Yorùbá, Zeêuws, 中文,
         Bân-lâm-gú, 粵語"""
-        if sys.version_info[0] == 2 and os.environ.get('THRIFT_TEST_PY_NO_UTF8STRINGS'):
-            s1 = s1.encode('utf8')
-            s2 = s2.encode('utf8')
         self.assertEqual(self.client.testString(s1), s1)
         self.assertEqual(self.client.testString(s2), s2)
 
diff --git a/test/py/TestServer.py b/test/py/TestServer.py
index 81ae1ad..e062378 100755
--- a/test/py/TestServer.py
+++ b/test/py/TestServer.py
@@ -18,7 +18,6 @@
 # specific language governing permissions and limitations
 # under the License.
 #
-from __future__ import division
 import logging
 import os
 import signal
