我正在使用Pytest在我的django项目中实现单元测试,该项目将MySql作为后端。
结合这些,我正在利用SQLAlchemy进行数据生成。
我有一个python函数 call_my_flow(),根据条件执行两个不同的流程。第一个流使用sqlalchemy连接,第二个流使用django连接进行数据库插入。
我已经使用pytest编写了两个单元测试来检查两个流程。
第一个流程(使用sqlalchemy连接):按照预期在数据库和pytest中运行流程事务处理。
第二个流(使用django数据库连接):事务提交失败,从而导致测试失败。
演示代码:
import pytest
from myflow import call_my_flow
@pytest.fixture(scope="class")
@pytest.mark.django_db(transaction=False)
def setup_my_flow():
call_my_flow()
@pytest.mark.usefixtures("setup_my_flow")
class TestGenerateOrder(object):
@pytest.fixture(autouse=True)
def setuporder(self):
self.first_count = 2
self.second_count = 5
@pytest.mark.order1
@pytest.mark.django_db
def test_first_flow_count(self):
db_count = get_first_count()
assert db_count == self.first_count
@pytest.mark.order2
@pytest.mark.django_db
def test_second_flow_count(self):
db_count = get_second_count()
assert db_count == self.second_count
请建议同样的解决方案。