on the way of making the XMLRPC tracker a standalone app. Away from sfiprocess in...
[sface.git] / sface / sfiprocess.py
index ca2c023..92c420b 100644 (file)
@@ -2,14 +2,9 @@
 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
-
 
 def find_executable(exec_name):
     """find the given executable in $PATH"""
@@ -29,11 +24,6 @@ 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
-        # readyReadStandardOutput signal
-        self.output = ''
-
         self.connect(self.process, SIGNAL("readyReadStandardOutput()"),
                      self.processStandardOutput)
         self.connect(self.process, SIGNAL("readyReadStandardError()"),
@@ -41,9 +31,6 @@ class SfiProcess(QObject):
 
     def __init_command(self, args):
         self.args = QStringList()
-        if config.debug:
-            # this shows xmlrpc conversation, see sfi.py docs.
-            self.args << QString('-D')
         for arg in args:
             self.args << QString(arg)
 
@@ -58,14 +45,8 @@ class SfiProcess(QObject):
         # NOTE: The signal readyReadStandardOutput is emitted when
         # 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"
-        tmpOut = self.process.readAllStandardOutput()
         if config.debug:
-            print tmpOut        
-        self.output += tmpOut
-
+            print self.process.readAllStandardOutput()
 
     def processStandardError(self):
         print self.process.readAllStandardError()
@@ -146,69 +127,4 @@ 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
+