【问题标题】:Setting up flask test_client设置烧瓶 test_client
【发布时间】:2018-10-07 07:29:21
【问题描述】:

我正在尝试测试我的烧瓶应用程序,但出现此错误

RuntimeError:在应用程序上下文之外工作。 这通常意味着您尝试使用需要的功能 以某种方式与当前应用程序对象交互。解决 这使用 app.app_context() 设置了一个应用程序上下文。见 文档以获取更多信息。`

我已经尝试理解错误,但我只知道应该实例化一个客户端实例以用于测试。帮助。 我的代码:

import unittest

from flask import jsonify


class TestAuth(unittest.TestCase):
"""Class for testing all the API endpoints"""
def setUp(self):
    """Initializing a test client and making the environment a testing one"""
    app.app.config['TESTING'] = True
    self.app = app.app.test_client()
    self.app.testing = True

def sign_in(self, email='user@gmail.com', password='testpass'):
    user_data = jsonify({"email": email, "password": password})
    return self.app.post('/api/v1/auth/signup/', data=user_data)

def log_in(self, email='user@gmail.com', password='testpass'):
    user_data = jsonify({"email": email, "password": password})
    return self.app.post('/api/v1/auth/login/', data=user_data)

def test_home_status_code(self):

    result = self.app.get('/api/v1/')
    self.assertEqual(result.status_code, 200)

def test_signin_status_code(self):
    result = self.sign_in()
    self.assertEqual(result.status_code, 200)

def test_login_correct_login(self):
    """test login after signing in"""
    self.sign_in()
    result = self.log_in()
    self.assertEqual(result.status_code, 200)
    self.assertIn(b'Success', result.message)

def test_login_with_wrong_credentials(self):
    """test successful login"""
    self.sign_in()  # must sign in first for successful login
    result = self.log_in(email='wrong@mail', password='wrongpass')
    self.assertIn(b'Wrong Username or Password', result.message)


if __name__ == "__main__":
unittest.main()

【问题讨论】:

    标签: unit-testing flask


    【解决方案1】:

    试试这个:

    def test_home_status_code(self):
    
        with self.app as client:
            result = client.get('/api/v1/')
            self.assertEqual(result.status_code, 200)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-28
      • 2012-07-31
      • 1970-01-01
      • 2019-07-29
      • 1970-01-01
      • 2012-12-27
      • 2014-03-07
      • 1970-01-01
      相关资源
      最近更新 更多