Source code for crate_anon.nlp_webserver.tests.views_tests

from unittest import mock, TestCase

from crate_anon.nlp_webserver.security import Credentials, hash_password
from crate_anon.nlp_webserver.views import (
    NlpWebViews,
    REDIS_SESSIONS,
    SESSION_TOKEN_EXPIRY_S,
)

TEST_TOKEN = "test-unique-id"


[docs]class NlpWebViewsTests(TestCase): @mock.patch( "crate_anon.nlp_webserver.views.get_auth_credentials", return_value=Credentials("test", "test"), ) @mock.patch( "crate_anon.nlp_webserver.views.get_users", return_value={"test": hash_password("test")}, ) @mock.patch( "crate_anon.nlp_webserver.views.make_unique_id", return_value=TEST_TOKEN, ) def test_authenticate_sets_redis_session(self, *args) -> None: request = mock.Mock() view = NlpWebViews(request) view._authenticate() self.assertEqual( REDIS_SESSIONS.get("test"), bytes(TEST_TOKEN, encoding="utf8") ) self.assertLessEqual( REDIS_SESSIONS.ttl("test"), SESSION_TOKEN_EXPIRY_S )