第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何將 QuerySelectField 表單數(shù)據(jù)發(fā)送到單元測(cè)試中的 Flask 視圖?

如何將 QuerySelectField 表單數(shù)據(jù)發(fā)送到單元測(cè)試中的 Flask 視圖?

慕姐8265434 2022-12-20 10:00:39
我正在嘗試在我正在處理的燒瓶應(yīng)用程序中測(cè)試編輯和添加視圖。網(wǎng)站的一個(gè)版本已部署并且視圖正常工作,但我正在進(jìn)行的測(cè)試似乎沒(méi)有正確傳遞 QuerySelectField 數(shù)據(jù)。此外,在測(cè)試時(shí),我會(huì)檢查表單數(shù)據(jù)是否有效并且確實(shí)有效,所以它應(yīng)該通過(guò)。下面是測(cè)試: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)以下是測(cè)試的終端輸出。最后兩個(gè)失敗與我發(fā)布的問(wèn)題相同,所以我將它們排除在外。字典打印輸出來(lái)自我注入的一些打印語(yǔ)句,以幫助我理解問(wèn)題。第一個(gè)字典是當(dāng)沒(méi)有表單提交到 add_post 視圖時(shí),第二個(gè)字典來(lái)自測(cè)試,它顯示類別字段已填寫(xiě),最后一個(gè)字典來(lái)自 add_post 視圖,顯示類別未填寫(xiě)。
查看完整描述

1 回答

?
繁花不似錦

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超4個(gè)贊

Flask discord 服務(wù)器上的一位樂(lè)于助人的人能夠?yàn)槲一卮疬@個(gè)問(wèn)題。


問(wèn)題是 Flask-wtforms 不傳遞模型的整個(gè)實(shí)例,而是只傳遞主鍵。解決方案是只傳遞數(shù)據(jù)字典中的主鍵,如下所示:


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, '******', '*****')


    # executed 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)


        # the following line was changed from having category=p_cat to

        # category=p_cat.id

        data = dict(title='Hello', content='fagkjkjas', category=p_cat.id)


        #

        # The following code has been commented out since it is no longer needed

        #

        # form = PostForm(data=data)

        #

        # this would not pass anymore

        # self.assertEqual(form.validate(), True)

        #

        # printing the data to see what it is

        # print(form.data)



        # This line was changed from having data=form.data to data=data

        response_1 = self.client.post('/add_post', follow_redirects=False, data=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)


查看完整回答
反對(duì) 回復(fù) 2022-12-20
  • 1 回答
  • 0 關(guān)注
  • 118 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)