2017-02-26 21 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') 

如何使用Flask對HTTPS執行類似的測試?

我發現this,但問題是沒有答案。我需要在HTTPS測試模式下運行Flask。

回答

1

request.is_secure檢查wsgi.url_scheme環境變量。通過與https覆蓋它使request.is_secure回報True

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

BTW,而不是assertTrue(a == b),使用assertEqual(a, b),給您更易讀斷言失敗消息。