Aller au contenu principal

3 formations sont désormais disponibles : Python, Flask et JS.

Aller au contenu principal

Tester les vues, les modèles et les formulaires

Apprendre Flask : Le Guide Ultime
3 min de lecture
Gratuit

Crée un dossier tests et un fichier test_auth.py.

1. Tester un Modèle (Unitaire)

def test_password_hashing():
    u = User(username='test', email='test@test.com')
    u.set_password('cat')
    
    assert u.check_password('cat') # Doit être Vrai
    assert not u.check_password('dog') # Doit être Faux

2. Tester une Vue (Intégration)

On utilise la fixture client qu'on a définie avant.

def test_login_page(client):
    # On fait un GET sur /login
    response = client.get('/auth/login')
    
    assert response.status_code == 200
    assert b"Se connecter" in response.data # On vérifie que le texte est dans le HTML

3. Tester une action (POST)

def test_register(client, app):
    # On envoie des données
    response = client.post('/auth/register', data={
        'username': 'bob',
        'email': 'bob@gmail.com',
        'password': 'password123',
        'confirm': 'password123'
    }, follow_redirects=True) # On suit la redirection après le POST
    
    assert response.status_code == 200
    assert b"Compte créé" in response.data # Message flash
    
    # Vérifions en base
    with app.app_context():
        assert User.query.count() == 1
        assert User.query.first().username == 'bob'

Si tu lances pytest, tu verras des points verts .. s'afficher. C'est satisfaisant. 🟢