diff --git a/webvirtcloud/settings.py.template b/webvirtcloud/settings.py.template index d5fe1da7..0365fe0e 100644 --- a/webvirtcloud/settings.py.template +++ b/webvirtcloud/settings.py.template @@ -149,6 +149,8 @@ if db_host := os.getenv("WEBVIRTCLOUD_DB_HOST"): "NAME": os.getenv("WEBVIRTCLOUD_DB_NAME", "webvirtcloud"), "USER": os.getenv("WEBVIRTCLOUD_DB_USER", "webvirtcloud"), "PASSWORD": os.getenv("WEBVIRTCLOUD_DB_PASSWORD", ""), + # seconds to connect: libpq waits for the operating system's TCP timeout (minutes) + "OPTIONS": {"connect_timeout": 5}, } } else: diff --git a/webvirtcloud/tests/test_settings_env.py b/webvirtcloud/tests/test_settings_env.py index 571a94de..76a74409 100644 --- a/webvirtcloud/tests/test_settings_env.py +++ b/webvirtcloud/tests/test_settings_env.py @@ -122,6 +122,9 @@ class DatabaseEnvTestCase(SimpleTestCase): "NAME": "wvc", "USER": "wvcuser", "PASSWORD": "secret"}, ) + def test_postgres_connects_within_a_bounded_time(self): + self.assertEqual(self.db({"WEBVIRTCLOUD_DB_HOST": "db.example.com"})["OPTIONS"], {"connect_timeout": 5}) + def test_postgres_defaults(self): db = self.db({"WEBVIRTCLOUD_DB_HOST": "db.example.com"}) self.assertEqual(