THRIFT-310. python: Generate valid code for empty services
authorDavid Reiss <dreiss@apache.org>
Sat, 7 Feb 2009 02:37:05 +0000 (02:37 +0000)
committerDavid Reiss <dreiss@apache.org>
Sat, 7 Feb 2009 02:37:05 +0000 (02:37 +0000)
git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@741832 13f79535-47bb-0310-9956-ffa450edef68

compiler/cpp/src/generate/t_py_generator.cc
test/DebugProtoTest.thrift
test/py/Makefile.am
test/py/TestSyntax.py [new file with mode: 0755]

index f0f076b..0237056 100644 (file)
@@ -890,6 +890,11 @@ void t_py_generator::generate_service_interface(t_service* tservice) {
       indent() << "def " << function_signature(*f_iter) << ":" << endl <<
       indent() << "  pass" << endl << endl;
   }
+  if (functions.empty()) {
+    f_service_ <<
+      indent() << "pass" << endl;
+  }
+
   indent_down();
   f_service_ <<
     endl;
index 2d2e120..e730b22 100644 (file)
@@ -82,6 +82,8 @@ service Srv {
   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 {
index 252f586..6daa26d 100644 (file)
@@ -3,10 +3,12 @@ THRIFT = $(top_srcdir)/compiler/cpp/thrift
 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 @@ check_SCRIPTS=                                  \
 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 (executable)
index 0000000..2921419
--- /dev/null
@@ -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