Flask 单元测试 unittest

import  unittest 单元测试

app = Flask(__name__)



--------------------------------------------
import unitest
class TestClass(unittest.TestCase):
    
    #该方法会首先执行,相当于做测试前的准备工作
    def setUp(self):
        pass


    #该方法会在测试代码执行完后执行,相当于做测试后的扫尾工作
    def tearDown(self):
        pass

    #测试代码
    def test_app_exists(self):
        pass




def num_div(num1,num2):
    #assert 断言 后面是一个表达式 如果表示返回真,则断言成功,程序能够继续往下执行
    #如果表达式返回假,则断言失败,assert会抛出异常AssertionError 终止程序继续往下执行
    assert isinstance(num1,int)
    assert isinstance(num2,int)
    assert num2 != 0

    print(num1 / num2)

if __name__ == '__main__':
    num_div(100,10)





# -*- coding: utf-8 -*-
# @Time    : 2019/2/18 20:31
# @Author  : yanxiatingyu
# @File    : unittest_study.py
# @Software: PyCharm


import unittest
from flask import Flask
from flask import request
from flask import jsonify

app = Flask(__name__)


@app.route('/')
def index():
    return 'test'


@app.route('/login', methods=["POST"])
def login():
    user_name = request.form.get("user_name")
    user_pwd = request.form.get("user_pwd")
    print(request.form)
    print(request.args)

    resp = ''
    if not all([user_name, user_pwd]):
        resp = {
            "code": 300,
            "message": "invalid params"
        }

        return jsonify(resp)

    if user_pwd == 'a' and user_name == 'a':
        resp = {
            "code": 200,
            "msessage": "login success"
        }
    else:
        resp = {
            "code": 300,
            "message": "login faild"
        }
    return jsonify(resp)


if __name__ == '__main__':
    app.run(debug=True)



import unittest
from unittest_study import app
import json


class LoginTest(unittest.TestCase):
    """构造单元测试案例"""

    def test_empty_user_name_password(self):
        """测试用户名密码不完整的情况"""
        # 创建进行web请求的客户端,使用flask提供的
        client = app.test_client()

        # 利用client客户端模拟发送web请求
        ret = client.post("/login", data={
            "user_name": "a",
            "user_pwd": "a"
        })

        # ret 是视图返回的响应对象
        # data 属性是响应体的数据
        resp = ret.data

        # 因为login视图返回的json字符串
        #
        resp = json.loads(resp)

        # 拿到返回值后进行断言测试
        self.assertIn("code", resp)  # code 是否 包含在resp里面

        self.assertEqual(resp["code"], 200)


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


-------------------------------------------------
from flask_mail import Mail,Message

# 配置邮件: 服务器 、 端口 、 传输层安全协议 、 邮箱名 、密码
app.config.update(
    DEBUG=True,
    MAIL_SERVER='smtp.qq.com',
    MAIL_PROT=465,
    MAIL_USE_TLS=True,
    MAIL_USERNAME='[email protected]',
    MAIL_PASSWORD='cyfgpsjasdqibaii'
)
#//MAIL_PASSWORD  授权码
#IMAP/SMTP服务 (什么是 IMAP,它又是如何设置?)  开启QQ邮箱此服务 获取授权码


#由于QQ邮箱不支持非加密的协议,那么使用加密协议,分为两种加密协议,选择其中之一即可
    #1.mail_use_tls    端口号是587

    #2.mail_use_ssl    端口号是465
    #我选择的mail_use_tls  协议,所以MAIL_USE_TLS设置为True,端口号587




mail = Mail(app)

import json
@app.route('/')
def index():

    try:
        # sender 发送方,recipients 接收方列表
        msg = Message("This is a test !", sender='[email protected]', recipients=["[email protected]"])
        # 邮箱内容
        msg.body = "Flask test mail !"
        # 发送邮件
        mail.send(msg)
        return json.dumps('send success !'), 200, {
            "Content-Type": "application/json"
        }
    except Exception as e:
        print(e)
        return json.dumps("send failed !"),200,{
            "Content-Type":"application/json"
        }

猜你喜欢

转载自www.cnblogs.com/yanxiatingyu/p/10399757.html