#32403: When run test with off postgres database got `RuntimeError: generator didn't yield` instead of connection error ----------------------------------+-------------------------------------- Reporter: Kazantcev Andrey | Owner: (none) Type: Bug | Status: closed Component: contrib.postgres | Version: 3.2 Severity: Normal | Resolution: needsinfo Keywords: postgres db | Triage Stage: Unreviewed Has patch: 0 | Needs documentation: 0 Needs tests: 0 | Patch needs improvement: 0 Easy pickings: 0 | UI/UX: 0 ----------------------------------+--------------------------------------
Comment (by Kazantcev Andrey): Replying to [comment:1 Mariusz Felisiak]: > Thanks for the report, however the builtin `django.db.backends.postgresql` backend (on Python `3.9.0+` and `3.8.5`) raises `Connection refused` for me (as expected): > {{{ > django.db.utils.OperationalError: could not connect to server: Connection refused > Is the server running on host "localhost" (127.0.0.1) and accepting > TCP/IP connections on port 5432? > }}} > > Can you share more details or a database configuration? Configuration ``` DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'NAME': os.getenv('POSTGRESQL_NAME', 'postgres'), 'USER': os.getenv('POSTGRESQL_USER', 'postgres'), 'PASSWORD': os.getenv('POSTGRESQL_PASSWORD', 'postgres'), 'HOST': os.getenv('POSTGRESQL_HOST', 'localhost'), 'PORT': os.getenv('POSTGRESQL_PORT', '5432'), 'OPTIONS': json.loads(os.getenv('POSTGRESQL_ENGINE_OPTIONS', '{}')) } } ``` I found a problem. The problem is in [these lines](https://github.com/django/django/blob/f9cfd346f0222d86bfbac26ef5455806965bae6b/django/db/backends/postgresql/base.py#L324-L325). If I have one connection and test expression in if return false then function just return without reraise exception. And `contextmanager` raises error `RuntimeError: generator didn't yield` -- Ticket URL: <https://code.djangoproject.com/ticket/32403#comment:2> Django <https://code.djangoproject.com/> The Web framework for perfectionists with deadlines. -- You received this message because you are subscribed to the Google Groups "Django updates" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-updates+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/064.1ffc3daa8e227a0daafa1243e264eed2%40djangoproject.com.