示例#1
0
def save_xml( kwargs, filename="" ):
    """ fonction: pour ecrire le fichier RssFeeds.xml, a partir d'une dico """
    try:
        if not filename: filename = XML_PATH
        if kwargs and isinstance( kwargs, dict ):
            # build a tree structure
            root = ET.Element( "rssfeeds" )
            root.text = "\n  "

            #optional Comment
            c1 = ET.Comment( 'RSS feeds. To have multiple feeds, just add a feed to the set. You can also have multiple sets.' )
            c2 = ET.Comment( 'To use different sets in your skin, each must be called from skin with a unique id.' )
            c1.tail = "\n  "; root.append( c1 )
            c2.tail = "\n  "; root.append( c2 )

            #optional Comment writed in set tag id 100 only
            c3 = ET.Comment( "Rss Feed : passion-xbmc.org; created and used by script Installer Passion-XBMC" )
            c3.tail = "\n    "

            # build elements and sub elements
            for key, value in sorted( kwargs.items(), key=lambda k: int( k[ 0 ] ) ):
                set_elem = ET.SubElement( root, "set" )
                set_elem.attrib.update( { "id": key, "rtl": value.get( "rtl", "false" ) } )
                set_elem.text = "\n    "
                set_elem.tail = "\n  "
                if key == "100": set_elem.append( c3 )
                for feed in value[ "feed" ]:
                    feed_elem = ET.SubElement( set_elem, "feed" )
                    feed_elem.attrib.update( { "updateinterval": feed.get( "updateinterval", "30" ) } )
                    feed_elem.text = feed.get( "feed", "http://passion-xbmc.org/scraper/?forumrss=1" )
                    feed_elem.tail = "\n    "

                try: feed_elem.tail = "\n  "
                except: set_elem.text = ""
                if not value[ "feed" ]:
                    set_elem.text = ""

            try: set_elem.tail = "\n"
            except: root.text = "\n"

            # wrap it in an ElementTree instance, and save as XML
            tree = ET.ElementTree( root )
            # frost: I modified ElementTree.write for write standalone
            try: tree.write( filename, ENCODING, True )
            except: tree.write( filename, ENCODING )

            #If not error, refresh_rss and return filename path.
            refresh_rss()
            return filename
    except:
        print_exc()
示例#2
0
    def done(self):
        """
        Final routine called when a process has completed and reporting
        is finalized.
        """
        self.printDebug("[->]\ttestHandlerBase.done()")
        self.pctMatch = (self.matchCount / float(self.repCount)) * 100.0
        if self.repDone > 0:
            if self.timeoutFlag:
                self.status = "TIMEDOUT"
            elif self.pctMatch > self.maxPctMatch or self.pctMatch < self.minPctMatch:
                self.printDebug('\tTest FAILED')
                self.status = 'FAIL'
            else:
                self.status = 'PASS'
        self.xmlResultTree.attrib['pctMatch'] = str(self.pctMatch)
        self.xmlResultTree.attrib['status'] = self.status

        # Dump the original Test Script into the output XML as a comment.
        testFileString = xmlObjToString(self.xmlFileTree.getroot())
        testFileString = string.replace(testFileString, "--", "-")
        orig = ElementTree.Comment(testFileString)
        self.xmlResultTree._children.append(orig)

        # if command line: print out message indicating test status
        # colorize it too!
        if (self.options['cmdLine'] == True):
            msgStr = ""
            statusColor = "yellow"
            if self.status == "PASS": statusColor = "green"
            elif self.status == "FAIL": statusColor = "red"
            statusStr = "%s" % (ANSIstring(statusColor, self.status))
            print logMessage(statusStr, self.testFileName)

        # cleanup if the cleanup handler exists
        cleanupFuncName = "cleanup_" + self.testType
        if hasattr(self, cleanupFuncName):
            cleanupFunc = getattr(self, cleanupFuncName)
            cleanupFunc()
        self.saveResultData()
        self.reset()
        self.printDebug("[<-]\ttestHandlerBase.done()")
示例#3
0
 def comment(self, tree, obj):
     if not obj.comments == "":
         com = ET.Comment(obj.comments)
         tree.append(com)