Интегрирован wesp в сайт
CI / quality (push) Canceled after 0s

This commit is contained in:
влад
2026-07-17 12:57:18 +03:00
parent 5dfa06ddbe
commit 355c0ef9f1
883 changed files with 194576 additions and 177 deletions
+62
View File
@@ -0,0 +1,62 @@
import unittest
import requests
from app.services.sync_error_display import (
friendly_sync_transport_message,
is_server_connection_error_message,
is_transient_sync_transport_error,
sync_error_text_for_display,
)
class SyncErrorDisplayTests(unittest.TestCase):
def test_hides_typical_requests_connection_errors(self) -> None:
samples = [
"HTTPConnectionPool(host='10.0.0.1', port=5000): Max retries exceeded with url: /api/sync/ping",
"HTTPSConnectionPool(host='x', port=443): Failed to establish a new connection: [Errno 111] Connection refused",
"NewConnectionError: connection refused",
"ConnectTimeoutError",
"getaddrinfo failed for host",
]
for s in samples:
with self.subTest(msg=s):
self.assertTrue(is_server_connection_error_message(s), s)
self.assertIsNone(sync_error_text_for_display(s))
def test_shows_logic_and_data_errors(self) -> None:
samples = [
"duplicate key value violates unique constraint",
"ValueError: invalid payload",
"IntegrityError: NOT NULL constraint failed",
"conflict on recipe version",
]
for s in samples:
with self.subTest(msg=s):
self.assertFalse(is_server_connection_error_message(s), s)
self.assertEqual(sync_error_text_for_display(s), s)
def test_empty_none(self) -> None:
self.assertFalse(is_server_connection_error_message(None))
self.assertFalse(is_server_connection_error_message(""))
self.assertIsNone(sync_error_text_for_display(None))
self.assertIsNone(sync_error_text_for_display(" "))
def test_friendly_dns_message(self) -> None:
exc = requests.ConnectionError(
"HTTPConnectionPool(host='a1.local', port=80): Failed to resolve 'a1.local'"
)
self.assertTrue(is_transient_sync_transport_error(exc))
msg = friendly_sync_transport_message(exc, server_url="http://a1.local/")
self.assertIn("a1.local", msg)
self.assertIn("mDNS", msg)
def test_friendly_refused_message(self) -> None:
exc = requests.ConnectionError("Connection refused")
msg = friendly_sync_transport_message(exc, server_url="http://192.168.1.10:80/")
self.assertIn("192.168.1.10", msg)
self.assertIn("отказ", msg.lower())
if __name__ == "__main__":
unittest.main()