测试登录所需的Flask应用程序

时间:2015-01-25 23:19:55

标签: python unit-testing flask flask-testing

我想测试一个Flask app需要登录才能工作我创建了登录测试类:

class TestLogin(unittest.TestCase):
    def setUp(self):
        self.headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}

    def test_admin_login_with_default_password(self):

        s = rq.Session()
        url = 'http://localhost/api/v1/user/login/'
        data = {'username': 'admin', 'password': ''}
        r = s.post(url, data=json.dumps(data), headers=self.headers)
        self.assertEqual(r.status_code, 200)

在其他测试中,我需要再次登录,在运行每个测试之前,我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

我创建了一个单独的登录功能,可以登录我的login.html

def login(self, username, password):
   return self.app.post('/login', data={'username': username,
                                        'password': password},
                        follow_redirects=True)

我在每次测试开始时都会打电话。

def test_listing_all_users(self):
   assert self.login(USERNAME, PASSWORD).status_code == 200
   ...