בעיה של session בבדיקות

תגיות:

אני מנסה להוסיף בדיקה לאחת הפונקציות בפרוייקט (ב app.py) שממשיכה להיכשל מכיוון ששמתי בה את התנאי:

if session.get(‘username’) is None:

    return render_template('login.j2')

כדי למנוע מצב שבו משתמש שאינו מחובר יוכל להשתמש בפונקציות של האתר. עכשיו כשאני מנסה לתת ערך לsession לצורך הבדיקה הוא לא נשמר כשהפונקציה עוברת לapp.py וממשיכה לזרוק אותי ללוגין. השאלה שלי היא האם יש דרך לתת ערך לsession שיישמר למהלך הבדיקה?

תכתוב : if ‘username’ not in session

זה הדרך הנכונה לבדוק מה קיים בsession

חיפשתי בגוגל Flask test session:
https://flask.palletsprojects.com/en/1.1.x/testing/#accessing-and-modifying-sessions

ניסיתי את זה ועוד פתרונות שמצאתי באינטרנט, בשום מצב הוא לא שומר לי את הsession

תוכל להדביק פה בבקשה את קוד הבדיקה?

tests\test__search_movies.py

class TestSearchMovies:

def test_search_not_existing_movie(self, mock_movie):

    # client = app.test_client()

    with app.test_client() as client:

        with client.session_transaction() as sess:

            sess['username'] = "hi"

            failure_search_movie_response = client.post('/search_movies', data={

                'movie_name': "my fake movie"

            }, follow_redirects=True)

            print(failure_search_movie_response.data.decode('utf-8'))

            assert "no movie fits this info" in failure_search_movie_response.data.decode('utf-8')

app.py

@app.route(’/search_movies’, methods=[‘GET’, ‘POST’])

def search_movies():

if session.get('username') is None:

    return render_template('login.j2')

בתיעוד כתוב שהפנייה ב¯POST צריכה להתבצע מחוץ ל¯with של ה¯session, כדי שהוא ישמור את הסשן (: