Я недавно переключился с использованием регулярных старых тестов с использованием WebTest и это «Нет Test Database Runner»Как мои тесты не влияют на базу данных ...?
from django.test.simple import DjangoTestSuiteRunner
class NoTestDbDatabaseTestRunner(DjangoTestSuiteRunner):
def setup_databases(self, **kwargs):
pass
def teardown_databases(self, old_config, **kwargs):
pass
Вот пример теста, который должен поражать базу как-то ...
Что происходит ? Могут ли мои тесты ударить по базе данных, но вернуться в какое-то старое состояние? Test-to-test Я вижу, что каждый созданный список имеет увеличенный id.
def test_image_upload(self):
form_data = self.listing_form_defaults.copy()
form_data['images-TOTAL_FORMS'] = '3'
upload_files = [
('images-0-image', 'testdata/1.png'),
('images-1-image', 'testdata/2.png'),
('images-2-image', 'testdata/3.png'),
]
form_resp = self.app.post(
reverse('listing_create'),
form_data,
upload_files=upload_files,
user='kmike'
).follow()
assert len(form_resp.context['listing'].images.all()) == 3
form_resp.context['listing'].images.all()
ДОЛЖЕН ударять базу данных, я print
«d это и имел запись базы данных из моей базы данных.
Я просто смущен - мои тесты запускаются быстро и, похоже, не меняют мою базу данных, как это работает/происходит ?!
Джанго является открытым исходным кодом. погрузитесь в код, я буду держать пари, что это довольно очевидно. –
Какая часть кода ............? –