蒸馏后Flask闪蒸

2024-03-28 10:32:52 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的测试用例中

with self.client:
  r = self.client.get('/admin/')
  print get_flashed_messages()

我看到以下输出:

^{pr2}$

但是,当我设置follow_redirects=True

with self.client:
  r = self.client.get('/admin/', follow_redirects=True)
  print r.data

使用此模板:

  <div class='container'>
    <div id="main-div" class="with-margins">
      FLASH MESSAGE HERE: {{ get_flashed_messages() }}

我看到以下输出:

 <div class='container'>
    <div id="main-div" class="with-margins">

      FLASH MESSAGE HERE: []

你知道为什么会这样吗?在

代码:

class AuthTestConfig(TestingConfig):
  TESTING = False
  LOGIN_DISABLED = False

class AccessControlTest(unittest.TestCase):

  def setUp(self):
    self.app = create_app(AuthTestConfig)
    self.client = self.app.test_client()

  def tearDown(self):
    pass

  def test_anon_visits_member_redirects_to_login(self):
    from flask import get_flashed_messages

    with self.client:
      r = self.client.get('/admin/', follow_redirects=True)
      #print get_flashed_messages()
      print r.data

Tags: selfdivclienttrueappgetadmindef
1条回答
网友
1楼 · 发布于 2024-03-28 10:32:52

doc摘录如下:

The flashing system basically makes it possible to record a message at the end of a request and access it next request and only next request

所以,当您呈现模板时,get_flashed_messages会从会话中删除闪现的消息,结果是您无法在测试用例中访问它。所以您应该关闭渲染(render_templates=False,在TestCase中)

相关问题 更多 >