1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
|
import xml.dom
from xml.dom.minidom import getDOMImplementation
import time
class Log:
def __init__(self, path, params, registry_file=''):
self.__parametres = params
# Creation du log XML
impl = xml.dom.minidom.getDOMImplementation()
self.__xml = impl.createDocument(None, "Campagnes", None)
# Cree un noeud xml
# Entree: nom, nom de la balise
# Sortie: nouveau noeud
def creerNoeud(self, nom):
noeud = self.__xml.createElement(nom)
return noeud
# Ajoute un noeud en tant que fils d'un autre noeud
# Entree: pere, noeud pere
# fils, noeud fils a ajouter
#
# Remarque: l'ajout d'un noeud se fait en fin de liste
def ajouterFils(self, pere, fils):
if pere == None or fils == None:
return
pere.appendChild(fils)
# Ajoute un noeud en tant que fils d'un autre noeud
# Entree: pere, noeud pere
# nom, nom du noeud a creer
# valeur, valeur du noeud cree
#
# Remarque: le noeud cree est de type <Nom>valeur</Nom>
def ajouterNoeud(self, pere, nom, valeur):
if pere == None:
return
noeud = self.creerNoeud(nom)
texte = self.__xml.createTextNode(valeur)
noeud.appendChild(texte)
pere.appendChild(noeud)
# Ajoute un attribut a une balise
# Entree: noeud, noeud courant
# nom, nom de l'attribut
# valeur, valeur de l'attribut
def ajouterAttribut(self, noeud, nom, valeur):
if noeud == None:
return
noeud.setAttribute(nom, valeur)
# Ajoute un commentaire a une balise
# Entree: pere, noeud courant
# valeur, commentaire <!-- -->
def ajouterCommentaire(self, pere, valeur):
if pere == None:
return
commentaire = self.__xml.createComment(valeur)
pere.getTrace().appendChild(commentaire)
# Ajoute le bilan d'execution d'un test et calcule le temps d'execution
# Entree: bilan, noeud "bilan"
# debut, date de debut
# fin, date de fin
def logBilanExecution(self, bilan, debut, fin):
temps = time.mktime(fin) - time.mktime(debut)
bilan_exec = self.creerNoeud("Bilan_Execution")
self.ajouterNoeud(bilan_exec, "Info", "Date Debut : " + time.asctime(debut))
self.ajouterNoeud(bilan_exec, "Info", "Date Fin : " + time.asctime(fin))
self.ajouterNoeud(bilan_exec, "Info", "Temps d'execution : " + str(temps) + " s")
self.ajouterFils(bilan, bilan_exec)
... |
Partager