Merge dev into main for customer release #39

Merged
avm merged 21 commits from feature/customer-release-20260811 into main 2026-08-11 13:30:24 +03:00
2 changed files with 17 additions and 7 deletions
Showing only changes of commit 851549587a - Show all commits

View File

@@ -35,13 +35,14 @@ class ExchangeConnectionService:
@classmethod @classmethod
def test_connection_payload(cls, **payload) -> dict[str, str]: def test_connection_payload(cls, **payload) -> dict[str, str]:
"""Проверить подключение и структуру без сохранения в БД.""" """Проверить доступность PostgreSQL без сохранения в БД."""
connection = ExchangeConnection(is_active=False, **payload) connection = ExchangeConnection(is_active=False, **payload)
cls.validate_saved_connection(connection) alias = cls.test_connection(connection)
cls._cleanup_alias(alias)
return { return {
"status": "success", "status": "success",
"message": "Подключение проверено. Соединение и структура БД валидны.", "message": "Подключение проверено. PostgreSQL доступен, логин и пароль верны.",
} }
@classmethod @classmethod

View File

@@ -173,8 +173,16 @@ class ExchangeConnectionServiceUnitTest(TestCase):
def test_test_connection_payload_does_not_persist_connection(self): def test_test_connection_payload_does_not_persist_connection(self):
with patch.object( with patch.object(
ExchangeConnectionService, ExchangeConnectionService,
"validate_saved_connection", "test_connection",
) as validate_mock: 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( result = ExchangeConnectionService.test_connection_payload(
server="127.0.0.1", server="127.0.0.1",
port=5432, port=5432,
@@ -187,10 +195,11 @@ class ExchangeConnectionServiceUnitTest(TestCase):
self.assertEqual(result["status"], "success") self.assertEqual(result["status"], "success")
self.assertEqual( self.assertEqual(
result["message"], result["message"],
"Подключение проверено. Соединение и структура БД валидны.", "Подключение проверено. PostgreSQL доступен, логин и пароль верны.",
) )
self.assertEqual(ExchangeConnection.objects.count(), 0) 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): def test_get_active_connection_raises_when_missing(self):
with self.assertRaisesMessage( with self.assertRaisesMessage(