Тестирование django с помощью mongomock для моделей django auth
Я пытаюсь выполнить модульные тесты на Django с использованием db mocking с помощью mongomock.
.
Мое соединение с БД осуществляется с помощью settings.py
, где соединение определено в settings.py
:
DATABASES = {
'dbname': {
'ENGINE': 'djongo',
'NAME': 'db1',
'ENFORCE_SCHEMA': False,
'CLIENT': {
'host': DB_HOST,
'port': DB_PORT,
'username': DB_USERNAME,
'password': DB_PASSWORD,
'authSource': 'admin',
'authMechanism': 'SCRAM-SHA-1'
}
},
'default': {
'ENGINE': 'djongo',
'NAME': 'users',
'ENFORCE_SCHEMA': False,
'CLIENT': {
'host': DB_HOST,
'port': DB_PORT,
'username': DB_USERNAME,
'password': DB_PASSWORD,
'authSource': 'admin',
'authMechanism': 'SCRAM-SHA-1'
}
}
}
и тест выглядит следующим образом:
from django.contrib.auth.models import User
class BaseApiTest():
def test_access_login(self):
User.objects.create_user(
username='admin',
password='admin'
)
....
self.assertEqual(AccessAttempt.objects.count(), 1)
Я знаю как издеваться над своими подключениями к БД, но здесь речь идет о внутреннем подключении Django к БД. (когда он пытается получить доступ к django.contrib.auth.models.User
)
.
Есть идеи?
Цель состоит в том, чтобы запускать тесты без экземпляра БД.
Другими словами, как я могу переписать соединение Django (self.databases
) с БД, используя соединение mongomock...