2017-02-26 3 views
1

以下の単純化されたコードは、私のフラスコのアプリケーションで定義されています。FlaskでHTTPSをテストする方法

def select_url_for(): 
    if request.is_secure: 
     return 's3'   
    return 'local' 

私はこのようなテストを試みましたが、HTTPで動作します。

def test_select_url_for(self): 
    with self.app.test_request_context(): 
     self.assertTrue(select_url_for() == 'local') 

HTTPSとFlaskで同様のテストを実行するにはどうすればよいですか?

私はthisを見つけましたが、質問には答えられません。 FlaskをHTTPSテストモードで実行する必要があります。

答えて

1

request.is_secureチェックwsgi.url_scheme環境変数。あなたがより読みアサーション失敗メッセージを与えるassertEqual(a, b)を使用し、代わりにassertTrue(a == b)の、

def test_select_url_for(self): 
    with self.app.test_request_context(environ_overrides={ 
      'wsgi.url_scheme': 'https' 
    }): 
     self.assertEqual(select_url_for(), 'local') 

ところで:httpsでそれをオーバーライドすることでrequest.is_secure戻りTrueを作ります。

関連する問題