我正在尝试在我正在处理的烧瓶应用程序中测试编辑和添加视图。网站的一个版本已部署并且视图正常工作,但我正在进行的测试似乎没有正确传递 QuerySelectField 数据。此外,在测试时,我会检查表单数据是否有效并且确实有效,所以它应该通过。
下面是测试:
class TestingWhileLoggedIn(TestCase):
def create_app(self):
app = c_app(TestConfiguration)
return app
# executed prior to each test
def setUp(self):
self.app_context = self.app.app_context()
self.app_context.push()
db.create_all()
login(self.client, '******', '******')
# excuted after each test
def tearDown(self):
db.session.remove()
db.drop_all()
self.app_context.pop()
logout(self.client)
def test_add_post_page_li(self):
p_cat = PostCategory(name='Resources')
p_cat1 = PostCategory(name='Ressdgources')
p_cat2 = PostCategory(name='Ressdgsdgources')
p_cat3 = PostCategory(name='Reurces')
db.session.add(p_cat)
db.session.add(p_cat1)
db.session.add(p_cat2)
db.session.add(p_cat3)
db.session.commit()
all_cats = PostCategory.query.all()
self.assertEqual([p_cat,p_cat1,p_cat2,p_cat3], all_cats)
response = self.client.get('/add_post', follow_redirects=False)
self.assertEqual(response.status_code, 200)
data = dict(title='Hello', content='fagkjkjas', category=p_cat)
form = PostForm(data=data)
# this test passes!
self.assertEqual(form.validate(), True)
# printing the data to see what it is
print(form.data)
response_1 = self.client.post('/add_post', follow_redirects=False, data=form.data, content_type='multipart/form-data')
# this one fails
self.assertEqual(response_1.status_code, 302)
new_post = db.session.query(Post).filter_by(name='Hello').first()
self.assertNotEqual(new_post, None)
以下是测试的终端输出。最后两个失败与我发布的问题相同,所以我将它们排除在外。
字典打印输出来自我注入的一些打印语句,以帮助我理解问题。第一个字典是当没有表单提交到 add_post 视图时,第二个字典来自测试,它显示类别字段已填写,最后一个字典来自 add_post 视图,显示类别未填写。
繁花不似锦
相关分类