Merge dev into main for customer release #39
@@ -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
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
Reference in New Issue
Block a user