diff --git a/src/python/interop/interop/empty_pb2.py b/src/python/interop/interop/empty_pb2.py
index 753341c7daf8be7ebc34f9ef9c4b3edcb1c9a899..732a358a369cdd16a1919a60cd39a9db5a27535a 100644
--- a/src/python/interop/interop/empty_pb2.py
+++ b/src/python/interop/interop/empty_pb2.py
@@ -57,4 +57,6 @@ Empty = _reflection.GeneratedProtocolMessageType('Empty', (_message.Message,), d
 _sym_db.RegisterMessage(Empty)
 
 
+from grpc.framework.face import demonstration as _face_testing
+from grpc.framework.face import interfaces as _face_interfaces
 # @@protoc_insertion_point(module_scope)
diff --git a/src/python/interop/interop/messages_pb2.py b/src/python/interop/interop/messages_pb2.py
index 79270cdf1292bf0ef76ac72166f6240e337b2f25..d449a991404cf2de155bdd8dab7df4fbd9f41fd6 100644
--- a/src/python/interop/interop/messages_pb2.py
+++ b/src/python/interop/interop/messages_pb2.py
@@ -441,4 +441,6 @@ StreamingOutputCallResponse = _reflection.GeneratedProtocolMessageType('Streamin
 _sym_db.RegisterMessage(StreamingOutputCallResponse)
 
 
+from grpc.framework.face import demonstration as _face_testing
+from grpc.framework.face import interfaces as _face_interfaces
 # @@protoc_insertion_point(module_scope)
diff --git a/src/python/interop/interop/test_pb2.py b/src/python/interop/interop/test_pb2.py
index 124145315981776fed215c6071ebf5d9aed38396..e86094611b111edb9eb8170f0d73663b40fab18e 100644
--- a/src/python/interop/interop/test_pb2.py
+++ b/src/python/interop/interop/test_pb2.py
@@ -29,4 +29,121 @@ _sym_db.RegisterFileDescriptor(DESCRIPTOR)
 
 
 
+from grpc.framework.face import demonstration as _face_testing
+from grpc.framework.face import interfaces as _face_interfaces
+class TestServiceService(object):
+  """<fill me in later!>"""
+  def __init__(self):
+    pass
+class TestServiceServicer(object):
+  """<fill me in later!>"""
+  def EmptyCall(self, arg):
+    raise NotImplementedError()
+  def UnaryCall(self, arg):
+    raise NotImplementedError()
+  def StreamingOutputCall(self, arg):
+    raise NotImplementedError()
+  def StreamingInputCall(self, arg):
+    raise NotImplementedError()
+  def FullDuplexCall(self, arg):
+    raise NotImplementedError()
+  def HalfDuplexCall(self, arg):
+    raise NotImplementedError()
+class TestServiceStub(object):
+  """<fill me in later!>"""
+  def EmptyCall(self, arg):
+    raise NotImplementedError()
+  EmptyCall.async = None
+  def UnaryCall(self, arg):
+    raise NotImplementedError()
+  UnaryCall.async = None
+  def StreamingOutputCall(self, arg):
+    raise NotImplementedError()
+  StreamingOutputCall.async = None
+  def StreamingInputCall(self, arg):
+    raise NotImplementedError()
+  StreamingInputCall.async = None
+  def FullDuplexCall(self, arg):
+    raise NotImplementedError()
+  FullDuplexCall.async = None
+  def HalfDuplexCall(self, arg):
+    raise NotImplementedError()
+  HalfDuplexCall.async = None
+class _TestServiceStub(TestServiceStub):
+  def __init__(self, face_stub, default_timeout):
+    self._face_stub = face_stub
+    self._default_timeout = default_timeout
+    stub_self = self
+    class EmptyCall(object):
+      def __call__(self, arg):
+        return stub_self._face_stub.blocking_value_in_value_out("EmptyCall", arg, stub_self._default_timeout)
+      def async(self, arg):
+        return stub_self._face_stub.future_value_in_value_out("EmptyCall", arg, stub_self._default_timeout)
+    self.EmptyCall = EmptyCall()
+    class UnaryCall(object):
+      def __call__(self, arg):
+        return stub_self._face_stub.blocking_value_in_value_out("UnaryCall", arg, stub_self._default_timeout)
+      def async(self, arg):
+        return stub_self._face_stub.future_value_in_value_out("UnaryCall", arg, stub_self._default_timeout)
+    self.UnaryCall = UnaryCall()
+    class StreamingOutputCall(object):
+      def __call__(self, arg):
+        return stub_self._face_stub.inline_value_in_stream_out("StreamingOutputCall", arg, stub_self._default_timeout)
+      def async(self, arg):
+        return stub_self._face_stub.inline_value_in_stream_out("StreamingOutputCall", arg, stub_self._default_timeout)
+    self.StreamingOutputCall = StreamingOutputCall()
+    class StreamingInputCall(object):
+      def __call__(self, arg):
+        return stub_self._face_stub.blocking_stream_in_value_out("StreamingInputCall", arg, stub_self._default_timeout)
+      def async(self, arg):
+        return stub_self._face_stub.future_stream_in_value_out("StreamingInputCall", arg, stub_self._default_timeout)
+    self.StreamingInputCall = StreamingInputCall()
+    class FullDuplexCall(object):
+      def __call__(self, arg):
+        return stub_self._face_stub.inline_stream_in_stream_out("FullDuplexCall", arg, stub_self._default_timeout)
+      def async(self, arg):
+        return stub_self._face_stub.inline_stream_in_stream_out("FullDuplexCall", arg, stub_self._default_timeout)
+    self.FullDuplexCall = FullDuplexCall()
+    class HalfDuplexCall(object):
+      def __call__(self, arg):
+        return stub_self._face_stub.inline_stream_in_stream_out("HalfDuplexCall", arg, stub_self._default_timeout)
+      def async(self, arg):
+        return stub_self._face_stub.inline_stream_in_stream_out("HalfDuplexCall", arg, stub_self._default_timeout)
+    self.HalfDuplexCall = HalfDuplexCall()
+def mock_TestService(servicer, default_timeout):
+  value_in_value_out = {}
+  value_in_stream_out = {}
+  stream_in_value_out = {}
+  stream_in_stream_out = {}
+  class EmptyCall(_face_interfaces.InlineValueInValueOutMethod):
+    def service(self, request, context):
+      return servicer.EmptyCall(request)
+  value_in_value_out['EmptyCall'] = EmptyCall()
+  class UnaryCall(_face_interfaces.InlineValueInValueOutMethod):
+    def service(self, request, context):
+      return servicer.UnaryCall(request)
+  value_in_value_out['UnaryCall'] = UnaryCall()
+  class StreamingOutputCall(_face_interfaces.InlineValueInStreamOutMethod):
+    def service(self, request, context):
+      return servicer.StreamingOutputCall(request)
+  value_in_stream_out['StreamingOutputCall'] = StreamingOutputCall()
+  class StreamingInputCall(_face_interfaces.InlineStreamInValueOutMethod):
+    def service(self, request, context):
+      return servicer.StreamingInputCall(request)
+  stream_in_value_out['StreamingInputCall'] = StreamingInputCall()
+  class FullDuplexCall(_face_interfaces.InlineStreamInStreamOutMethod):
+    def service(self, request, context):
+      return servicer.FullDuplexCall(request)
+  stream_in_stream_out['FullDuplexCall'] = FullDuplexCall()
+  class HalfDuplexCall(_face_interfaces.InlineStreamInStreamOutMethod):
+    def service(self, request, context):
+      return servicer.HalfDuplexCall(request)
+  stream_in_stream_out['HalfDuplexCall'] = HalfDuplexCall()
+  face_linked_pair = _face_testing.server_and_stub(default_timeout,inline_value_in_value_out_methods=value_in_value_out,inline_value_in_stream_out_methods=value_in_stream_out,inline_stream_in_value_out_methods=stream_in_value_out,inline_stream_in_stream_out_methods=stream_in_stream_out)
+  class LinkedPair(object):
+    def __init__(self, server, stub):
+      self.server = server
+      self.stub = stub
+  stub = _TestServiceStub(face_linked_pair.stub, default_timeout)
+  return LinkedPair(None, stub)
 # @@protoc_insertion_point(module_scope)