我有一个DRF的功能测试套件。它使用@pytest.mark.django_db()
访问SQL Server数据库。
我现在需要访问一个辅助MySQL DB,所以我安装了mysqlclient
。
在不更改任何源代码或django设置的情况下,单独安装这个包会破坏我的测试套件。
请注意,实际的mysqlclient似乎工作正常,并允许我访问辅助MySQL DB。
这是错误
django/core/handlers/base.py(348)make_view_atomic()
def make_view_atomic(self, view):
non_atomic_requests = getattr(view, "_non_atomic_requests", set())
for alias, settings_dict in connections.settings.items():
> if settings_dict["ATOMIC_REQUESTS"] and alias not in non_atomic_requests:
E KeyError: 'ATOMIC_REQUESTS'
我试过使用这个:@pytest.mark.django_db(databases=["default"])
将数据隔离到SQL Server数据库。没用的
我试过在设置中设置ATOMIC_REQUESTS,但它不粘。
DATABASES = {
'default': {
'ENGINE': 'mssql',
'NAME': os.environ['DATABASE'],
'USER': os.environ['USERNAME'],
'PASSWORD': os.environ['PASSWORD'],
'HOST': os.environ['SERVER_URL'],
"ATOMIC_REQUESTS": True,
'OPTIONS': {
'driver': 'ODBC Driver 18 for SQL Server',
'extra_params': "Encrypt=no"
}}
在调试器中,它不会在设置中显示“ATOMIC_REQUESTS”。
ipdb> settings_dict
{'ENGINE': 'mssql', 'HOST': 'localhost', 'NAME': 'dev'}
1条答案
按热度按时间goqiplq21#
ATOMIC_REQUESTS设置不起作用,因为我忘记了我有 www.example.com 。把它加进去就行了。