|
@@ -0,0 +1,55 @@
|
|
|
+from flask import current_app
|
|
|
+from itsdangerous import TimedJSONWebSignatureSerializer
|
|
|
+from flaskbb.utils.tokens import make_token, get_token_status
|
|
|
+
|
|
|
+
|
|
|
+def test_make_token(user):
|
|
|
+ token = make_token(user, "test")
|
|
|
+ s = TimedJSONWebSignatureSerializer(current_app.config['SECRET_KEY'])
|
|
|
+ unpacked_token = s.loads(token)
|
|
|
+ assert user.id == unpacked_token["id"]
|
|
|
+ assert "test" == unpacked_token["op"]
|
|
|
+
|
|
|
+
|
|
|
+def test_valid_token_status(user):
|
|
|
+ token = make_token(user, "valid_test")
|
|
|
+ expired, invalid, token_user = get_token_status(token, "valid_test")
|
|
|
+
|
|
|
+ assert not expired
|
|
|
+ assert not invalid
|
|
|
+ assert token_user == user
|
|
|
+
|
|
|
+
|
|
|
+def test_token_status_with_data(user):
|
|
|
+ token = make_token(user, "test_data")
|
|
|
+ expired, invalid, token_user, data = \
|
|
|
+ get_token_status(token, "test_data", return_data=True)
|
|
|
+ assert user.id == data["id"]
|
|
|
+ assert "test_data" == data["op"]
|
|
|
+
|
|
|
+
|
|
|
+def test_token_operation(user):
|
|
|
+ token = make_token(user, "operation_test")
|
|
|
+ expired, invalid, token_user = get_token_status(token, "invalid_op")
|
|
|
+ assert invalid
|
|
|
+ assert not expired
|
|
|
+ assert not token_user
|
|
|
+
|
|
|
+
|
|
|
+def test_invalid_token_status(user):
|
|
|
+ token = "this-is-not-a-token"
|
|
|
+ expired, invalid, token_user, data = \
|
|
|
+ get_token_status(token, "invalid_test", return_data=True)
|
|
|
+
|
|
|
+ assert invalid
|
|
|
+ assert not expired
|
|
|
+ assert not token_user
|
|
|
+ assert data is None
|
|
|
+
|
|
|
+
|
|
|
+def test_expired_token_status(user):
|
|
|
+ token = make_token(user, "expired_test", -1)
|
|
|
+ expired, invalid, token_user = get_token_status(token, "expired_test")
|
|
|
+ assert expired
|
|
|
+ assert not invalid
|
|
|
+ assert not token_user
|