IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

Reception de protocol de CppUniTest (par mail par exemple)


Sujet :

Réseau/Web Python

  1. #1
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 112
    Par défaut Reception de protocol de CppUniTest (par mail par exemple)
    Salut!
    Je suis debutant en python. D'ailleur j'ai commencé aujourd'hui par le tutorial se trouvant sur ce site. Et je dois dire qu'il est très interessant, ce tutorial.

    comme je dis, au travail j'ai eu à faire des CppUnit-Tests et j'ai essayé d'en faire des protocole en XML. Maintenant, je dois continuer avec le langage python.

    J'ai comme devoir de pouvoir faire en sorte celui qui veux recevoir le protocol puisse d'abord entrer un mot de passe, mail.....(je ne peux pas expliquer clairement).

    Ce que j'ai déjà, c'est le protocole de du CppUnit que j'ai généré et transformer en HTML avec un CppUnitFormatter (fichier xsl que j'ai ecrit).
    Voici en fait ce que j'ai comme code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
    # -*- coding: latin1 -*-
     
    """Script pour executer des Unit-Tests  dans les sources .
    """
     
    import os
     
    ################################################################################
    # BuildError
    class BuildError(Exception):
        """Cette exception apparait, lorsqu’il ya  erreur lors de la compil.
        """
     
    ################################################################################
    # shell_command
    def shell_command(cmd):
        """Commence un processus et retourne le Output du processus comme liste de caracteres
        """
        cmd2 = cmd + ' 2>&1'
        p = os.popen(cmd2)
        lines = []
        line = p.readline()
        while line:
            lines.append(line)
            line = p.readline()
        try:
            status = p.close()
        except KeyboardInterrupt, e:
            raise
        except:
            raise BuildError(''.join(lines))
        if status:
            raise BuildError(''.join(lines))
     
        return lines
     
    ################################################################################
    # execute_config
    def execute_testscripts(path, config):
        """Cherche des scriptes dans le repertoire……….
        """
        messages = {};
        for root, dirs, files in os.walk(path):
            if root.find('.svn') < 0: # pas de fichier dabs le repertoire svn
                for file in files:
                    cmd = None
                    if file.lower().endswith('.test.pl'):
                        cmd = 'perl.exe '
                    elif file.lower().endswith('.test.py'):
                        cmd = 'python.exe '
                    elif file.lower().endswith('.test.bat'):
                        cmd = 'cmd /C '
                    if cmd:
                        cmd += root + '\\' + file
                        print '%-30s ' % file,
                        try:
                            if 'Debug' in dirs:
                               shell_command('rmdir /S /Q ' + root + '\\Debug')   # efface tous les fichiers du dernier test
                            shell_command(cmd + ' %s' % config)
                            print 'ok'
                            messages[file] = ''
                        except BuildError, e:
                            print 'Fehler'
                            messages[file] = str(e)
     
        return messages
     
    ################################################################################
    # main
    def main():
        """Programme principal".
        """
        import sys
        rootpath = sys.argv[1]
     
        messages = execute_testscripts(rootpath, 'Debug')
        text = ''
        has_errors = False
        for file in sorted(messages.keys()):
            status = 'ok'
            if messages[file]:
                status = 'Fehler'
                has_errors = True
            text += '%-30s  %s\n' % (file, status)
            if messages[file]:
                text += '=' * 80 + '\n'
                text += messages[file]
                text += '=' * 80 + '\n\n'
     
        dumpFile = open(sys.argv[2], 'w')
        dumpFile.write(text)
        dumpFile.close()
        return has_errors
     
     
    ################################################################################
    if __name__ == '__main__':
        main()
    Comment dois-je m'y prendre.
    Je dois, comme je l'ai dit plus haut, faire en sorte que certaine personne (dans l'entreprise) recoive le protocole du CppUnit, mais ayant auparavant entrer leur mails, mot de passe ou uin truc du genre.


    Je ne comprend pas aussi exactement ce que le code ci-dessus fait.

    Merci d'avance de votre aide

    Merlinerick

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2008
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 112
    Par défaut
    Excusez-moi, le code est difficilement lisible, surtout la partie du programme principal.

    voici ce qui est mieux lisible:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
     
    # -*- coding: latin1 -*-
     
    """Script pour executer des Unit-Tests  dans les sources .
    """
     
    import os
     
    ################################################################################
    # BuildError
    class BuildError(Exception):
        """Cette exception apparait, lorsqu’il ya  erreur lors de la compil.
        """
     
    ################################################################################
    # shell_command
    def shell_command(cmd):
        """Commence un processus et retourne le Output du processus comme liste de caracteres
        """
        cmd2 = cmd + ' 2>&1'
        p = os.popen(cmd2)
        lines = []
        line = p.readline()
        while line:
            lines.append(line)
            line = p.readline()
        try:
            status = p.close()
        except KeyboardInterrupt, e:
            raise
        except:
            raise BuildError(''.join(lines))
        if status:
            raise BuildError(''.join(lines))
     
        return lines
     
    ################################################################################
    # execute_config
    def execute_testscripts(path, config):
        """Cherche des scriptes dans le repertoire……….
        """
        messages = {};
        for root, dirs, files in os.walk(path):
            if root.find('.svn') < 0: # pas de fichier dabs le repertoire svn
                for file in files:
                    cmd = None
                    if file.lower().endswith('.test.pl'):
                        cmd = 'perl.exe '
                    elif file.lower().endswith('.test.py'):
                        cmd = 'python.exe '
                    elif file.lower().endswith('.test.bat'):
                        cmd = 'cmd /C '
                    if cmd:
                        cmd += root + '\\' + file
                        print '%-30s ' % file,
                        try:
                            if 'Debug' in dirs:
                               shell_command('rmdir /S /Q ' + root + '\\Debug')   # efface tous les fichiers du dernier test
                            shell_command(cmd + ' %s' % config)
                            print 'ok'
                            messages[file] = ''
                        except BuildError, e:
                            print 'Fehler'
                            messages[file] = str(e)
     
        return messages
     
    ################################################################################
    # main
    def main():
        """ "Programme principal"
        """
        import sys
        rootpath = sys.argv[1]
     
        messages = execute_testscripts(rootpath, 'Debug')
        text = ''
        has_errors = False
        for file in sorted(messages.keys()):
            status = 'ok'
            if messages[file]:
                status = 'Erreur'
                has_errors = True
            text += '%-30s  %s\n' % (file, status)
            if messages[file]:
                text += '=' * 80 + '\n'
                text += messages[file]
                text += '=' * 80 + '\n\n'
     
        dumpFile = open(sys.argv[2], 'w')
        dumpFile.write(text)
        dumpFile.close()
        return has_errors
     
     
    ################################################################################
    if __name__ == '__main__':
        main()

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/05/2014, 13h20
  2. [WD16] Envoi de mailing par mail sous Windev16
    Par Agriculture dans le forum WinDev
    Réponses: 5
    Dernier message: 30/09/2011, 00h44
  3. [XL-2003] Envoi de mail par messagerie par défaut
    Par toinou28 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/08/2009, 19h48
  4. ENVOI MAIL par Oracle par HTML_EMAIl
    Par fatsora dans le forum Oracle
    Réponses: 0
    Dernier message: 23/01/2008, 16h57
  5. [Mail] Envoi de mail par mail()
    Par delphicrous dans le forum Langage
    Réponses: 1
    Dernier message: 27/03/2006, 09h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo