test_tokens.py 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. from flask import current_app
  2. from itsdangerous import TimedJSONWebSignatureSerializer
  3. from flaskbb.utils.tokens import make_token, get_token_status
  4. def test_make_token(user):
  5. token = make_token(user.id, "test")
  6. s = TimedJSONWebSignatureSerializer(current_app.config['SECRET_KEY'])
  7. unpacked_token = s.loads(token)
  8. assert user.id == unpacked_token["id"]
  9. assert "test" == unpacked_token["op"]
  10. def test_valid_token_status(user):
  11. token = make_token(user.id, "valid_test")
  12. expired, invalid, token_user = get_token_status(token, "valid_test")
  13. assert not expired
  14. assert not invalid
  15. assert token_user == user
  16. def test_token_status_with_data(user):
  17. token = make_token(user.id, "test_data")
  18. expired, invalid, token_user, data = \
  19. get_token_status(token, "test_data", return_data=True)
  20. assert user.id == data["id"]
  21. assert "test_data" == data["op"]
  22. def test_token_operation(user):
  23. token = make_token(user.id, "operation_test")
  24. expired, invalid, token_user = get_token_status(token, "invalid_op")
  25. assert invalid
  26. assert not expired
  27. assert not token_user
  28. def test_invalid_token_status(user):
  29. token = "this-is-not-a-token"
  30. expired, invalid, token_user, data = \
  31. get_token_status(token, "invalid_test", return_data=True)
  32. assert invalid
  33. assert not expired
  34. assert not token_user
  35. assert data is None
  36. def test_expired_token_status(user):
  37. token = make_token(user.id, "expired_test", -1)
  38. expired, invalid, token_user = get_token_status(token, "expired_test")
  39. assert expired
  40. assert not invalid
  41. assert not token_user