From f5f4d46aa4cd1c5e01d3ade945b9813ad26f0418 Mon Sep 17 00:00:00 2001 From: nicoo Date: Wed, 26 May 2021 19:05:26 +0200 Subject: [PATCH] tests/api/test_auth_login: Refactor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Have a single “login success” test, for both MFA and no-MFA cases. No functional change to the test. --- tests/api/test_auth_login.py | 42 ++++++++++++------------------------ 1 file changed, 14 insertions(+), 28 deletions(-) diff --git a/tests/api/test_auth_login.py b/tests/api/test_auth_login.py index ebb98561..b59dbef6 100644 --- a/tests/api/test_auth_login.py +++ b/tests/api/test_auth_login.py @@ -1,39 +1,18 @@ +import pytest from flask import url_for from app.extensions import db from app.models import User, AccountActivation -def test_auth_login_success_mfa_disabled(flask_client): - User.create( - email="abcd@gmail.com", password="password", name="Test User", activated=True - ) - db.session.commit() - - r = flask_client.post( - url_for("api.auth_login"), - json={ - "email": "abcd@gmail.com", - "password": "password", - "device": "Test Device", - }, - ) - - assert r.status_code == 200 - assert r.json["api_key"] - assert r.json["email"] - assert not r.json["mfa_enabled"] - assert r.json["mfa_key"] is None - assert r.json["name"] == "Test User" - - -def test_auth_login_success_mfa_enabled(flask_client): +@pytest.mark.parametrize("mfa", (True, False), ids=("MFA", "no MFA")) +def test_auth_login_success(flask_client, mfa: bool): User.create( email="abcd@gmail.com", password="password", name="Test User", activated=True, - enable_otp=True, + enable_otp=mfa, ) db.session.commit() @@ -47,10 +26,17 @@ def test_auth_login_success_mfa_enabled(flask_client): ) assert r.status_code == 200 - assert r.json["api_key"] is None - assert r.json["mfa_enabled"] - assert r.json["mfa_key"] assert r.json["name"] == "Test User" + assert r.json["email"] + + if mfa: + assert r.json["api_key"] is None + assert r.json["mfa_enabled"] + assert r.json["mfa_key"] + else: + assert r.json["api_key"] + assert not r.json["mfa_enabled"] + assert r.json["mfa_key"] is None def test_auth_login_device_exist(flask_client):