2017-03-02 1 views
0

Avoir de fichier suivant handler.pyfonction Python simulation appelé subprocess

import job 

def worker(): 
    return job() 

Et test suivant test_handler.py

import subprocess 

def test_worker(): 
    subprocess.Popen(['./handler.py'], stderr=subprocess.PIPE)   

Comment puis-je moquer job fonction, en tenant compte du fait que handler.py est appelé à subprocess

+0

Qu'en est-il de [mock] (https://docs.python.org/3/library/unittest.mock.html)? –

+0

Question éditée, ceci est nécessaire dans le sous-processus – artie12

+0

Certainement, la simulation pourrait vous aider! :-) –

Répondre

0

Ce n'est pas la meilleure approche pour tester cette fonctionnalité.

Puisqu'il s'agit d'un test unitaire, vous devez tester le travail et vérifier sa valeur.

handler.py

import job 

def worker(): 
    return job() 

test_handler.py

import unittest 
from handler import worker 

class TestHandlerCase(unittest.TestCase): 

    def test_worker(self): 
     """Test call worker should succeed.""" 
     self.assertEqual(worker(), True) 

if __name__ == '__main__': 
    unittest.main() 

Vérifiez si le résultat de la méthode est égale à l'attendu. Et donc, ajustez la méthode/test.

De toute façon, ceci est un exemple, basé sur votre code de question.