[PYTHON] 플라스크 유닛 테스트 : 로그인 한 사용자의 요청 테스트 방법
PYTHON플라스크 유닛 테스트 : 로그인 한 사용자의 요청 테스트 방법
Flask 웹 응용 프로그램에 대한 단위 테스트를 작성 중이며 익명 사용자와 로그인 한 사용자의 요청의 차이점을 테스트하려고합니다.
Flask-Login 확장을 사용하여 사용자 로그인 / 로그 아웃을 구현하고 있습니다.
분명히 익명 요청을 수행 할 수 있지만 로그인 한 사용자의 요청을 어떻게 시뮬레이트합니까?
세션 쿠키를 헤더에 보내면 충분하다고 생각했지만 작동하지 않습니다.
headers = Headers({'Cookie':['WEBSITE_ID=%s; Domain=adsabs.harvard.edu; expires=Thu, 25-Apr-2213 16:53:22 GMT; Path=/' % cookie_value,
'WEBSITE_ID=%s; Domain=.adsabs.harvard.edu; expires=Thu, 25-Apr-2213 16:53:22 GMT; Path=/' % cookie_value,
'session="A VERY LONG STRING"; Path=/; HttpOnly',
]})
rv = app.test_client().get('/', headers=headers)
세션 쿠키 값은 브라우저의 실제 로그인 값입니다.
내가 뭘 놓치고 있니?
해결법
-
==============================
1.Flask-Login은 세션에서 user_id를 찾고, session_transaction을 사용하여 테스트에서 이것을 설정할 수 있습니다 :
Flask-Login은 세션에서 user_id를 찾고, session_transaction을 사용하여 테스트에서 이것을 설정할 수 있습니다 :
with app.test_client() as c: with c.session_transaction() as sess: sess['user_id'] = 'myuserid' sess['_fresh'] = True # https://flask-login.readthedocs.org/en/latest/#fresh-logins resp = c.get('/someurl')
여기서 myuserid는 사용자 개체의 ID입니다.
from https://stackoverflow.com/questions/16238462/flask-unit-test-how-to-test-request-from-logged-in-user by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 한 목록을 다른 파이썬으로 매핑하는 방법은 무엇입니까? [복제] (0) | 2018.11.17 |
---|---|
[PYTHON] Paramiko와 exec_command - 원격 프로세스를 종료합니까? (0) | 2018.11.17 |
[PYTHON] 여러 연결 요청 (0) | 2018.11.17 |
[PYTHON] 어떻게하면 OS의 기본 프린터 인 Python 3 (크로스 플랫폼)에서 인쇄 할 수 있습니까? (0) | 2018.11.17 |
[PYTHON] Pandas - Python을 사용하여 Excel에서 특정 열을 읽는 방법 (0) | 2018.11.17 |