a little nicer wrt pep8
[sfa.git] / sfatables / xmlrule.py
index 97940de..b749147 100644 (file)
@@ -1,6 +1,11 @@
+import sys,os
+
 import libxml2
-import libxslt
-from sfatables.globals import *
+# allow to run sfa2wsdl if this is missing (for mac)
+try:import libxslt
+except: print("WARNING, could not import libxslt", file=sys.stderr)
+
+from sfatables.globals import sfatables_config
 
 class XMLRule:
     def apply_processor(self, type, doc, output_xpath_filter=None):
@@ -10,7 +15,6 @@ class XMLRule:
         filepath = os.path.join(sfatables_config, 'processors', processor)
         # XXX
 
-        print filepath
         styledoc = libxml2.parseFile(filepath)
         style = libxslt.parseStylesheetDoc(styledoc)
         result = style.applyStylesheet(doc, None)
@@ -57,8 +61,8 @@ class XMLRule:
 
     def add_rule_context_to_rspec(self, doc):
         p = doc.xpathNewContext()
-        context = p.xpathEval("//Rspec")
-        if (not context):
+        context = p.xpathEval("//*")
+        if not context or context[0].name not in ['RSpec', 'rspec']:
             raise Exception('Request is not an rspec')
         else:
             # Add the request context
@@ -86,12 +90,12 @@ class XMLRule:
         #       else rspec
         
         if (self.match(rspec)):
-            return self.wrap_up(self.target(rspec))
+            return (True,self.wrap_up(self.target(rspec)))
         else:
-            return self.wrap_up(rspec)
+            return (False,self.wrap_up(rspec))
 
 
-    def apply_compiled(rspec):
+    def apply_compiled(self, rspec):
         # Not supported yet
         return None