def test_email_confirmation_serializer_creation(app, db): """Ensure that no two tokens are identical.""" extra_data = dict(email="*****@*****.**") with app.app_context(): s = EmailConfirmationSerializer() t1 = s.create_token(1, extra_data) t2 = s.create_token(1, extra_data) assert t1 != t2
def test_email_confirmation_serializer_expected_data_mismatch(app, db): """Test token validation.""" extra_data = dict(email="*****@*****.**") with app.app_context(): s = EmailConfirmationSerializer() t = s.create_token(1, extra_data) assert s.validate_token(t) is not None assert s.validate_token(t, dict(notvalid=1)) is None assert s.validate_token(t, dict(email='another@email')) is None
def test_email_confirmation_serializer_create_validate(app, db): """Test token creation.""" extra_data = dict(email="*****@*****.**") with app.app_context(): s = EmailConfirmationSerializer() t = s.create_token(1, extra_data) data = s.validate_token(t, expected_data=extra_data) assert data['id'] == 1 assert data['data'] == extra_data
def test_email_confirmation_serializer_expired(app, db): """Test token expiry.""" extra_data = dict(email="*****@*****.**") with app.app_context(): s = EmailConfirmationSerializer(expires_in=-20) t = s.create_token(1, extra_data) assert s.validate_token(t) is None assert s.validate_token(t, expected_data=extra_data) is None with pytest.raises(SignatureExpired): s.load_token(t) assert s.load_token(t, force=True) is not None