pytest-dev / pytest-django

A Django plugin for pytest.
https://pytest-django.readthedocs.io/
Other
1.32k stars 341 forks source link

Pytest django crashing with pyest 8.0.0 #1107

Open jacobowitz opened 5 months ago

jacobowitz commented 5 months ago

We seem to have an issue in our test setup with pytest-django and the new 8.0.0 release of pytest. Just pinning pytest to the last 7.x version is a working workaround for us.

Our database setup fixture is crashing since the new pytest version was released. I am not sure which component is ultimately responsible for this bug, but I figured I could try pinging you first as it might be very well in pytest-django.

error_message This is the error we are getting. It looks like it is trying to setup the db to often and thus generates too long database names as a side effect.

begin_stack Begin of the stack trace

loop pytest_django/fixtures.py:305: in handle shows up 293 times in total. Looks like some kind of recursive loop

pytest 8.0.0 Django 4.2.9 pytest-django 4.7.0 Python 3.10.13 Debian Postgres

bluetech commented 5 months ago

Can you show your pytest configuration and how you invoke pytest?

bluetech commented 5 months ago

Also, does it still happen if you disable parallelism (i.e. run without using -n auto or such)?

wrvdklooster commented 3 months ago

We also see this sometimes after upgrading to pytest 8.0.0.

Debugged a bit and noticed after running tests for some time at a certain time in pytest-django in method django_db_modify_db_settings_xdist_suffix the value of the test database name seems wrong.

I see these values:

suffix = 'gw2'
test_name = 'test_gw2'

This means after the method returns the database name will be test_gw2_gw2.

I will try to reproduce with pytest 8.0.2 also.