From 851549587a7abe59f8e57d3074e14dd72737d667 Mon Sep 17 00:00:00 2001 From: Aleksandr Meshchriakov Date: Mon, 10 Aug 2026 13:23:23 +0200 Subject: [PATCH] fix(exchange): limit connection test to postgres access --- src/apps/exchange/services.py | 7 ++++--- tests/apps/exchange/test_service_units.py | 17 +++++++++++++---- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/apps/exchange/services.py b/src/apps/exchange/services.py index f65a21c..33a36db 100644 --- a/src/apps/exchange/services.py +++ b/src/apps/exchange/services.py @@ -35,13 +35,14 @@ class ExchangeConnectionService: @classmethod def test_connection_payload(cls, **payload) -> dict[str, str]: - """Проверить подключение и структуру без сохранения в БД.""" + """Проверить доступность PostgreSQL без сохранения в БД.""" connection = ExchangeConnection(is_active=False, **payload) - cls.validate_saved_connection(connection) + alias = cls.test_connection(connection) + cls._cleanup_alias(alias) return { "status": "success", - "message": "Подключение проверено. Соединение и структура БД валидны.", + "message": "Подключение проверено. PostgreSQL доступен, логин и пароль верны.", } @classmethod diff --git a/tests/apps/exchange/test_service_units.py b/tests/apps/exchange/test_service_units.py index fc73e14..a4fe819 100644 --- a/tests/apps/exchange/test_service_units.py +++ b/tests/apps/exchange/test_service_units.py @@ -173,8 +173,16 @@ class ExchangeConnectionServiceUnitTest(TestCase): def test_test_connection_payload_does_not_persist_connection(self): with patch.object( ExchangeConnectionService, - "validate_saved_connection", - ) as validate_mock: + "test_connection", + return_value="target_alias", + ) as test_connection_mock, patch.object( + ExchangeConnectionService, + "_cleanup_alias", + ) as cleanup_mock, patch.object( + ExchangeConnectionService, + "_validate_schema_exists", + side_effect=AssertionError("test-only connection check must not validate schema"), + ): result = ExchangeConnectionService.test_connection_payload( server="127.0.0.1", port=5432, @@ -187,10 +195,11 @@ class ExchangeConnectionServiceUnitTest(TestCase): self.assertEqual(result["status"], "success") self.assertEqual( result["message"], - "Подключение проверено. Соединение и структура БД валидны.", + "Подключение проверено. PostgreSQL доступен, логин и пароль верны.", ) self.assertEqual(ExchangeConnection.objects.count(), 0) - validate_mock.assert_called_once() + test_connection_mock.assert_called_once() + cleanup_mock.assert_called_once_with("target_alias") def test_get_active_connection_raises_when_missing(self): with self.assertRaisesMessage(