diff --git a/Lib/encodings/utf_7.py b/Lib/encodings/utf_7.py
index d78d192..8e0567f 100644
--- a/Lib/encodings/utf_7.py
+++ b/Lib/encodings/utf_7.py
@@ -6,34 +6,31 @@
 
 ### Codec APIs
 
-class Codec(codecs.Codec):
+encode = codecs.utf_7_encode
 
-    # Note: Binding these as C functions will result in the class not
-    # converting them to methods. This is intended.
-    encode = codecs.utf_7_encode
-    decode = codecs.utf_7_decode
+def decode(input, errors='strict'):
+    return codecs.utf_7_decode(input, errors, True)
 
 class IncrementalEncoder(codecs.IncrementalEncoder):
     def encode(self, input, final=False):
         return codecs.utf_7_encode(input, self.errors)[0]
 
 class IncrementalDecoder(codecs.BufferedIncrementalDecoder):
-    def _buffer_decode(self, input, errors, final):
-        return codecs.utf_7_decode(input, self.errors)
+    _buffer_decode = codecs.utf_7_decode
 
-class StreamWriter(Codec,codecs.StreamWriter):
-    pass
+class StreamWriter(codecs.StreamWriter):
+    encode = codecs.utf_7_encode
 
-class StreamReader(Codec,codecs.StreamReader):
-    pass
+class StreamReader(codecs.StreamReader):
+    decode = codecs.utf_7_decode
 
 ### encodings module API
 
 def getregentry():
     return codecs.CodecInfo(
         name='utf-7',
-        encode=Codec.encode,
-        decode=Codec.decode,
+        encode=encode,
+        decode=decode,
         incrementalencoder=IncrementalEncoder,
         incrementaldecoder=IncrementalDecoder,
         streamreader=StreamReader,
diff --git a/Lib/test/test_codecs.py b/Lib/test/test_codecs.py
index 413a5aa..a828edf 100644
--- a/Lib/test/test_codecs.py
+++ b/Lib/test/test_codecs.py
@@ -544,7 +544,17 @@
 class UTF7Test(ReadTest):
     encoding = "utf-7"
 
-    # No test_partial() yet, because UTF-7 doesn't support it.
+    def test_partial(self):
+        self.check_partial(
+            "a+-b",
+            [
+                "a",
+                "a",
+                "a+",
+                "a+-",
+                "a+-b",
+            ]
+        )
 
 class UTF16ExTest(unittest.TestCase):
 
