reverted last commit, which was just few print statement. Looks like sface is keeping...
[sface.git] / sface / sfiprocess.py
index bf37de5..1e93b29 100644 (file)
@@ -2,14 +2,10 @@
 import os
 import sys
 import time
-import re
 
 from PyQt4.QtCore import *
-from PyQt4.QtXml import QDomDocument
 from sface.config import config
-from sface.logwindow import LogIO
-from sface.rspecwindow import RSpecWindow, DomModel
-
+from sface.xmlrpcwindow import XmlrpcTracker
 
 def find_executable(exec_name):
     """find the given executable in $PATH"""
@@ -29,8 +25,8 @@ class SfiProcess(QObject):
         self.connect(self.process, SIGNAL("finished(int, QProcess::ExitStatus)"),
                      self.processFinished)
         
-        self.xmltracker = XmlTracker()
-        # in case self.output is read by the XmlTracker before any
+        self.xmlrpctracker = XmlrpcTracker()
+        # in case self.output is read by the XmlrpcTracker before any
         # readyReadStandardOutput signal
         self.output = ''
 
@@ -59,8 +55,7 @@ class SfiProcess(QObject):
         # the process has made new data available through its standard output channel.
         # But the process is not necessarily finished.
         # It's cool to have this method wo we print the stdOut live,
-        # but we must be carefull with self.output, used by xmlTracker too.
-        print "SETTING SELF.OUTPUT"
+        # but we must be carefull with self.output, used by XmlrpcTracker too.
         tmpOut = self.process.readAllStandardOutput()
         if config.debug:
             print tmpOut        
@@ -145,69 +140,5 @@ class SfiProcess(QObject):
         if config.verbose:
             command = "%s %s" % (self.exe, self.args.join(" "))
             print time.strftime('%M:%S'),"[%.3f s]"%(time.time()-self._trace),command,'Done'
-            self.xmltracker.getAndPrint(self.output)
-
-class XmlTracker():
-    def __init__(self):
-        self.xmlrpcWindow = XmlrpcWindow()
-
-    def getAndPrint(self, rawOutput):
-        self.store(rawOutput)
-        self.extractXml()
-        self.xmlrpcWindow.setData(self.xml)
-        self.showXmlrpc()
-
-    def showXmlrpc(self):
-        self.xmlrpcWindow.show()
-        self.xmlrpcWindow.resize(500, 640)
-        self.xmlrpcWindow.raise_()
-        self.xmlrpcWindow.activateWindow()
-
-    def store(self, rawOutput):
-        self.rawOutput = rawOutput
-
-    def extractXml(self):
-        pttrnAsk = '<methodCall>.*?</methodCall>'
-        pttrnAns = '<methodResponse>.*?</methodResponse>'
-        answers = re.compile(pttrnAsk, re.DOTALL).findall(self.rawOutput)
-        replies = re.compile(pttrnAns, re.DOTALL).findall(self.rawOutput)
-        # cleaning
-        answers = map(lambda x: x.replace('\\n','\n'), answers)
-        replies = map(lambda x: x.replace('\\n','\n').replace("'\nbody: '", ''), replies)
-        replies.reverse() # so that I use pop() as popleft
-        # A well-formed XML document must have one, and only one, top-level element
-        self.xml = '<debug>'
-        for ans in answers:
-            self.xml += ans + replies.pop()
-        self.xml += '</debug>'
-
-    def stats(self):
-        # statistics: round-trip time, size of the com
-        pass
-
-    def prettyPrint(self, XmlComs):
-        # just for testing
-        print XmlComs
-
-class XmlrpcWindow(RSpecWindow):
-    def __init__(self, parent=None):
-        # super __init__() calls updateView,
-        # which assumes you have some data
-        self.data = '<debug/>'
-        RSpecWindow.__init__(self, parent)
-
-    def setData(self, XmlrpcCom):
-        self.data = XmlrpcCom
-
-    def updateView(self):
-        del self.document
-        del self.model
-        self.document = None
-        self.model = None
-
-        self.document = QDomDocument("RSpec")
-        self.document.setContent(self.data)
-        self.model = DomModel(self.document, self)
-
-        self.view.setModel(self.model)
-        self.view.expand(self.model.index(0, 0)) #expand first level only
+            self.xmlrpctracker.getAndPrint(self.output)
+