def testOkWithMock( self ): # test avec un user qui n'est obtenu avec une fausse requête http (simulée) responses.add(responses.GET, 'https://randomuser.me/api', json=FAKE_USER) us = createUserFromAPIUrl('https://randomuser.me/api') assert isinstance(us, User) assert us.name == 'mr balder fjelldal' print('testOkWithMock completed')
def test_my_mock(self, mocker): # nom mocker obligatoire ? # affectation de la méthode qui simule mocker.patch('fetch_user_from_api.createUserFromAPIUrl', return_value=User.createFromJson(FAKE_USER)) from fetch_user_from_api import createUserFromAPIUrl # réécarsement du pointeur vers la méthode simulée user = createUserFromAPIUrl( 'https://randomuser.me/api') # appel de test # comparaison avec ce qu'on sait qu'on est censé recevoir fake_user = User.createFromJson(FAKE_USER) assert user == fake_user print('test_my_mock completed')
def testMockUser( self, mocker_create_user ): # mocker_create_user est l'alias que l'on utilise pour la méthode définie avec @mock.patch # truc bizarre : nécessaire pour réécraser la référence de pointeur vers la méthode qui doit être simulée # car celle-ci a été importée en tête de fichier et que la référence de pointeur est en mémoire from fetch_user_from_api import createUserFromAPIUrl mocker_create_user.return_value = User.createFromJson( FAKE_USER) # affectation de la méthode qui simule user = createUserFromAPIUrl( 'https://randomuser.me/api') # appel de test # comparaison avec ce qu'on sait qu'on est censé recevoir fake_user = User.createFromJson(FAKE_USER) self.assertEqual(user, fake_user) print('testMockUser completed')
def testWrongServer(self): with pytest.raises(CannotConnectToAPIException): us = createUserFromAPIUrl('https://jklhmhjjklmhjklhjklh/apiXXXXXX') print('testWrongServer completed')
def testWrongPage(self): with pytest.raises(Exception404): createUserFromAPIUrl('https://randomuser.me/apiXXXXXX') print('testWrongPage completed')
def testOk(self): us = createUserFromAPIUrl('https://randomuser.me/api') assert isinstance(us, User) print('testOk completed')
def testServerDownWithMock(self): # même principe # pas de responses.add pour simuler que le serveur est HS with pytest.raises(CannotConnectToAPIException): createUserFromAPIUrl('https://randomuser.me/api') print('testWrongServerWithMock completed')
def testWrongServerWithMock(self): # même principe # le serveur est ok mais on va demander une URL incorrecte responses.add(responses.GET, 'https://randomuser.me/api', status=404) with pytest.raises(CannotConnectToAPIException): createUserFromAPIUrl('https://randomuserXXXX.me/api') print('testWrongServerWithMock completed')
def testWrongPageWithMock(self): # le serveur va renvoyer une erreur 404 responses.add(responses.GET, 'https://randomuser.me/api', status=404) with pytest.raises(Exception404): createUserFromAPIUrl('https://randomuser.me/api') print('testWrongPageWithMock completed')