from flask import url_for, g from app.models import ( Alias, ) from tests.utils import login def test_create_random_alias_success(flask_client): user = login(flask_client) assert Alias.filter(Alias.user_id == user.id).count() == 1 r = flask_client.post( url_for("dashboard.index"), data={"form-name": "create-random-email"}, follow_redirects=True, ) assert r.status_code == 200 assert Alias.filter(Alias.user_id == user.id).count() == 2 def test_too_many_requests(flask_client): login(flask_client) # can't create more than 5 aliases in 1 minute for _ in range(7): r = flask_client.post( url_for("dashboard.index"), data={"form-name": "create-random-email"}, follow_redirects=True, ) # to make flask-limiter work with unit test # https://github.com/alisaifee/flask-limiter/issues/147#issuecomment-642683820 g._rate_limiting_complete = False else: # last request assert r.status_code == 429 assert "Whoa, slow down there, pardner!" in str(r.data)