예제 #1
0
def create_session(database: Database, username: str, email: str) -> None:
    """Generate a new random, secret and unique session id and a session expiration datetime and add it to the
    database and the session cookie."""
    session_id = cast(SessionId, uuid())
    session_expiration_datetime = datetime.now() + timedelta(hours=24)
    sessions.upsert(database, username, email, session_id, session_expiration_datetime)
    set_session_cookie(session_id, session_expiration_datetime)
예제 #2
0
 def test_upsert(self):
     """Test upsert function."""
     self.assertIsNone(
         sessions.upsert(
             database=self.database,
             username=JENNY["user"],
             email=JENNY["email"],
             session_id=SessionId("6"),
             session_expiration_datetime=datetime(2019, 10, 18, 19, 22, 5,
                                                  99),
         ))
     self.database.sessions.update.assert_called_with(
         {"user": JENNY["user"]},
         JENNY | dict(session_id="6",
                      session_expiration_datetime=datetime(
                          2019, 10, 18, 19, 22, 5, 99)),
         upsert=True,
     )
예제 #3
0
 def test_upsert(self):
     """Test upsert function."""
     database = MagicMock()
     database.sessions = MagicMock()
     database.sessions.update = MagicMock()
     self.assertIsNone(
         sessions.upsert(database=database,
                         username='******',
                         email="*****@*****.**",
                         session_id=SessionId('5'),
                         session_expiration_datetime=datetime(
                             2019, 10, 18, 19, 22, 5, 99)))
     database.sessions.update.assert_called_with({'user': '******'}, {
         'user':
         '******',
         'email':
         '*****@*****.**',
         'session_id':
         '5',
         'session_expiration_datetime':
         datetime(2019, 10, 18, 19, 22, 5, 99)
     },
                                                 upsert=True)