2

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

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)

在其他测试中,我需要再次登录,在运行每个测试之前如何轻松做到这一点?

4

1 回答 1

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
   ...
于 2015-01-26T07:29:32.660 回答