[解決済み] Flask のアプリやリクエストコンテキストを必要とするコードのテスト
2023-06-03 05:09:36
質問
私は
working outside of request context
にアクセスしようとすると
session
にアクセスしようとしたとき。 コンテキストを必要とするものをテストする場合、どのように設定すればよいのでしょうか?
import unittest
from flask import Flask, session
app = Flask(__name__)
@app.route('/')
def hello_world():
t = Test()
hello = t.hello()
return hello
class Test:
def hello(self):
session['h'] = 'hello'
return session['h']
class MyUnitTest(unittest.TestCase):
def test_unit(self):
t = tests.Test()
t.hello()
どのように解決するのですか?
アプリケーションにリクエストを出す場合は
test_client
.
c = app.test_client()
response = c.get('/test/url')
# test response
アプリケーションコンテキストを使用するコードをテストしたい場合 (
current_app
,
g
,
url_for
) を押すと
app_context
.
with app.app_context():
# test your app context code
リクエストコンテキストを使うテストコードが欲しい場合 (
request
,
session
) を押すと
test_request_context
.
with current_app.test_request_context():
# test your request context code
アプリとリクエストの両方のコンテキストを手動でプッシュすることも可能で、インタープリタを使用する場合に便利です。
>>> ctx = app.app_context()
>>> ctx.push()
を実行すると、Flask-Script や新しい Flask cli が自動的にアプリのコンテキストをプッシュします。
shell
コマンドを実行したときに自動的にアプリのコンテキストをプッシュします。
Flask-Testing
は、Flaskアプリをテストするためのヘルパーを含む便利なライブラリです。
関連
-
[解決済み] Flaskのリクエストで受信したデータを取得する
-
[解決済み】コード変更時のPython Flaskアプリの自動再読み込み
-
[解決済み] DataFrameの文字列、dtypeがobjectの場合
-
[解決済み] Pythonのマルチプロセッシングプールimap_unorderedの呼び出しの進捗を表示しますか?
-
[解決済み] Flaskで1時間ごとに関数を実行するようにスケジュールするには?
-
[解決済み] バブルソートの宿題
-
[解決済み] Pythonの要素別タプル演算(sumなど
-
[解決済み] 小数点以下1桁を取得する[重複]。
-
[解決済み] Celeryタスクのユニットテストはどのように行うのですか?
-
[解決済み] Pandasを使って、既存のExcelファイルに新しいシートを保存する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] PythonでファイルのMD5チェックサムを計算するには?重複
-
[解決済み] Pythonのインスタンス変数とクラス変数
-
[解決済み] Pythonのargparseを使った隠し引数の作成
-
[解決済み] 古いバージョンのPythonにおける辞書のキーの並び順
-
[解決済み] SQLAlchemy - テーブルのリストを取得する
-
[解決済み] Flask でグローバル変数はスレッドセーフか?リクエスト間でデータを共有するには?
-
[解決済み] matplotlib でプロットの軸、目盛、ラベルの色を変更する方法
-
[解決済み] Pythonの検索パスを他のソースに展開する
-
[解決済み] Pythonの辞書にあるスレッドセーフについて
-
[解決済み] データクラスとtyping.NamedTupleの主な使用例