Peter Justin 9 лет назад
Родитель
Сommit
c7c3ab0a40
1 измененных файлов с 55 добавлено и 0 удалено
  1. 55 0
      tests/unit/utils/test_tokens.py

+ 55 - 0
tests/unit/utils/test_tokens.py

@@ -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