THRIFT-310. python: Generate valid code for empty services


git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@741832 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/compiler/cpp/src/generate/t_py_generator.cc b/compiler/cpp/src/generate/t_py_generator.cc
index f0f076b..0237056 100644
--- a/compiler/cpp/src/generate/t_py_generator.cc
+++ b/compiler/cpp/src/generate/t_py_generator.cc
@@ -890,6 +890,11 @@
       indent() << "def " << function_signature(*f_iter) << ":" << endl <<
       indent() << "  pass" << endl << endl;
   }
+  if (functions.empty()) {
+    f_service_ <<
+      indent() << "pass" << endl;
+  }
+
   indent_down();
   f_service_ <<
     endl;
diff --git a/test/DebugProtoTest.thrift b/test/DebugProtoTest.thrift
index 2d2e120..e730b22 100644
--- a/test/DebugProtoTest.thrift
+++ b/test/DebugProtoTest.thrift
@@ -82,6 +82,8 @@
   i32 Janky(i32 arg)
 }
 
+service EmptyService {}
+
 // The only purpose of this thing is to increase the size of the generated code
 // so that ZlibTest has more highly compressible data to play with.
 struct BlowUp {
diff --git a/test/py/Makefile.am b/test/py/Makefile.am
index 252f586..6daa26d 100644
--- a/test/py/Makefile.am
+++ b/test/py/Makefile.am
@@ -3,10 +3,12 @@
 py_unit_tests =                                 \
         SerializationTest.py                    \
         TestEof.py                              \
+        TestSyntax.py                           \
         RunClientServer.py
 
 thrift_gen =                                    \
-        gen-py/ThriftTest/__init__.py
+        gen-py/ThriftTest/__init__.py           \
+        gen-py/DebugProtoTest/__init__.py
 
 helper_scripts=                                 \
         TestClient.py                           \
@@ -20,7 +22,7 @@
 TESTS= $(py_unit_tests)
 
 
-gen-py/ThriftTest/__init__.py: ../ThriftTest.thrift
+gen-py/%/__init__.py: ../%.thrift
 	$(THRIFT) --gen py $<
 
 clean-local:
diff --git a/test/py/TestSyntax.py b/test/py/TestSyntax.py
new file mode 100755
index 0000000..2921419
--- /dev/null
+++ b/test/py/TestSyntax.py
@@ -0,0 +1,8 @@
+#!/usr/bin/env python
+
+import sys, glob
+sys.path.insert(0, './gen-py')
+sys.path.insert(0, glob.glob('../../lib/py/build/lib.*')[0])
+
+# Just import these generated files to make sure they are syntactically valid
+from DebugProtoTest import EmptyService