From c031d6c7c2629641fe32489757357ce9d291ef39 Mon Sep 17 00:00:00 2001
From: Martijn Vermaat <martijn@vermaat.name>
Date: Mon, 30 Jan 2012 16:07:21 +0000
Subject: [PATCH] Add checkSyntax to SOAP tools

git-svn-id: https://humgenprojects.lumc.nl/svn/mutalyzer/trunk@468 eb6bd6ab-9ccd-42b9-aceb-e2899b4a52f1
---
 extras/soap-tools/checkSyntax.py | 45 ++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)
 create mode 100755 extras/soap-tools/checkSyntax.py

diff --git a/extras/soap-tools/checkSyntax.py b/extras/soap-tools/checkSyntax.py
new file mode 100755
index 00000000..decfbc13
--- /dev/null
+++ b/extras/soap-tools/checkSyntax.py
@@ -0,0 +1,45 @@
+#!/usr/bin/env python
+"""
+Run the Mutalyzer syntaxchecker on a variant description.
+
+Usage:
+  {command} description
+
+  description: Variant description to check.
+
+The syntaxchecker results are retrieved from the Mutalyzer SOAP webservice and
+printed to standard output.
+"""
+
+
+from mutalyzer.util import monkey_patch_suds; monkey_patch_suds()
+
+import sys
+from suds.client import Client
+
+from mutalyzer.util import format_usage
+
+
+WSDL_LOCATION = 'http://localhost/mutalyzer/services/?wsdl'
+
+
+def main(description):
+    """
+    Run the Mutalyzer syntaxchecker and print results to standard output.
+    """
+    service = Client(WSDL_LOCATION, cache=None).service
+    result = service.checkSyntax(description)
+
+    if result.valid:
+        print 'Syntax OK!'
+    else:
+        print 'Syntax NOT OK:'
+        for message in result.messages.SoapMessage:
+            print message.message
+
+
+if __name__ == '__main__':
+    if len(sys.argv) < 2:
+        print format_usage()
+        sys.exit(1)
+    main(sys.argv[1])
-- 
GitLab