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)
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, )
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)