如何在使用flask_mysqldb的flask中创建单元测试?

时间:2019-05-12 16:39:37

标签: mysql flask python-unittest

我正在阅读教程here

但是本教程使用sqlalchemy如下:

from datetime import datetime, timedelta
import unittest
from app import app, db
from app.models import User, Post

class UserModelCase(unittest.TestCase):
    def setUp(self):
        app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite://'
        db.create_all()

    def tearDown(self):
        db.session.remove()
        db.drop_all()

事实上,我已经编写了一个使用from flask_mysqldb import MySQL

的网络应用

教程中的__init__.py如下所示:

from flask import Flask
from config import Config
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate

app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
migrate = Migrate(app, db)

from app import routes, models

我自己的mysql=MySQL(app)中有__init__.py

我可以在代码的第一部分中用db替换mysql来测试我的应用程序吗?

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite://'又如何呢?

我没有使用sqlalchemy,只使用flask_mysqldb

1 个答案:

答案 0 :(得分:0)

Sol:

使用testing.mysqld模块

here

参考: Mock a MySQL database in Python