【发布时间】:2021-02-11 22:23:47
【问题描述】:
你好吗?
我需要测试向数据库添加信息,但我不知道如何测试外键与单元测试的集成。 没有我添加 Nullable as false 的信息被添加没有问题 我正在使用 Flask 1.1.2 和 Flask-sqlaclhemy 2.4.4 数据库是mysql。 遵循模型代码:
from app import db
class Client(db.Model):
__tablename__ = 'clients'
code = db.Column(db.Integer, primary_key=True, nullable=False)
name_fantasy = db.Column(db.String(64), index=True, nullable=False)
contact = db.relationship('ContactClient', backref='client', lazy='dynamic')
class ContactClient(db.Model):
__tablename__ = 'contacts_clients'
business_mail = db.Column(db.String(64), primary_key=True)
ddi = db.Column(db.Integer)
ddd = db.Column(db.Integer)
phone = db.Column(db.Integer)
client_id = db.Column(db.Integer, db.ForeignKey('clients.code'), nullable=False)
测试代码:
import unittest
from app import create_app, db
from app.models.clients import Client, ContactClient, FiscalClient
class ClientModelTestCase(unittest.TestCase):
def setUp(self):
self.app = create_app('testing')
self.app_context = self.app.app_context()
self.app_context.push()
db.create_all()
def tearDown(self):
db.session.remove()
db.drop_all()
self.app_context.pop()
def test_client(self):
cl1 = Client(code=1, name_fantasy='empresa_test')
db.session.add(cl1)
db.session.commit()
def test_contact(self):
cl1 = ContactClient(business_mail='empresa_test@example.com', ddi=55,
ddd=11, phone=12345678, client_id=1)
db.session.add(cl1)
db.session.commit()
如果你能在这个测试用例中帮助我,我将非常感激
【问题讨论】:
标签: python mysql flask sqlalchemy python-unittest