feat(registry): add new endpoints for registers, exchange, and backups; update routing and configurations
Some checks failed
CI/CD Pipeline / Code Quality Checks (push) Failing after 3m10s
CI/CD Pipeline / Run Tests (push) Successful in 3m35s
CI/CD Pipeline / Telegram Notify Success (push) Has been skipped
CI/CD Pipeline / Code Quality Checks (pull_request) Failing after 2m26s
CI/CD Pipeline / Run Tests (pull_request) Successful in 2m46s
CI/CD Pipeline / Telegram Notify Success (pull_request) Has been skipped

This commit is contained in:
2026-03-04 15:36:57 +01:00
parent 052389d921
commit a91ed1f1ae
90 changed files with 5488 additions and 622 deletions

View File

@@ -5,8 +5,6 @@ from __future__ import annotations
from urllib.parse import urlparse
import requests
from requests.adapters import BaseAdapter
from apps.parsers.clients.base import (
BaseHTTPClient,
ConnectionError,
@@ -19,6 +17,7 @@ from apps.parsers.clients.minpromtorg.schemas import IndustrialCertificate, Manu
from apps.parsers.clients.proverki import ProverkiClient
from apps.parsers.clients.proverki.schemas import Inspection
from django.test import TestCase, tag
from requests.adapters import BaseAdapter
from tests.utils import Response, TestHTTPServer
from tests.utils.fixtures import (
@@ -110,7 +109,9 @@ class BaseHTTPClientTest(TestCase):
with TestHTTPServer() as server:
server.add_route("POST", "/echo", echo_handler)
server.add_route("GET", "/missing", lambda _req, _body: Response(status=404))
server.add_route(
"GET", "/missing", lambda _req, _body: Response(status=404)
)
client = BaseHTTPClient(base_url=server.base_url, adapter=server.adapter)
result = client.post("/echo", data=b"ping")
self.assertEqual(result, b"ping")
@@ -123,7 +124,9 @@ class BaseHTTPClientTest(TestCase):
def test_download_file_error(self):
with TestHTTPServer() as server:
server.add_route("GET", "/missing.bin", lambda _req, _body: Response(status=404))
server.add_route(
"GET", "/missing.bin", lambda _req, _body: Response(status=404)
)
client = BaseHTTPClient(base_url=server.base_url, adapter=server.adapter)
with self.assertRaises(HTTPError):
client.download_file("/missing.bin")
@@ -136,7 +139,9 @@ class BaseHTTPClientTest(TestCase):
def test_context_manager_closes_session(self):
with TestHTTPServer() as server:
server.add_json("/ping", {"ok": True})
with BaseHTTPClient(base_url=server.base_url, adapter=server.adapter) as client:
with BaseHTTPClient(
base_url=server.base_url, adapter=server.adapter
) as client:
client.get_json("/ping")
self.assertIsNotNone(client._session)
self.assertIsNone(client._session)
@@ -280,10 +285,7 @@ class IndustrialProductionClientTest(TestCase):
def test_get_latest_file_url_selects_newest(self):
client = IndustrialProductionClient()
dates = sorted(
{
fake.date_between(start_date="-90d", end_date="today")
for _ in range(3)
}
{fake.date_between(start_date="-90d", end_date="today") for _ in range(3)}
)
files = []
for date in dates:
@@ -397,10 +399,7 @@ class ManufacturesClientTest(TestCase):
def test_get_latest_file_url_selects_newest(self):
client = ManufacturesClient()
dates = sorted(
{
fake.date_between(start_date="-90d", end_date="today")
for _ in range(3)
}
{fake.date_between(start_date="-90d", end_date="today") for _ in range(3)}
)
files = []
for date in dates:
@@ -565,7 +564,7 @@ class ProverkiClientTest(TestCase):
f"<КонтрольныйОрган>{authority}</КонтрольныйОрган>"
"</КНМ>"
"</Проверки>"
).encode("utf-8")
).encode()
inspections = client._parse_xml_content(xml_content, None)
@@ -580,7 +579,7 @@ class ProverkiClientTest(TestCase):
row_inn = "".join(str(fake.random_int(0, 9)) for _ in range(10))
reg_num = "".join(str(fake.random_int(0, 9)) for _ in range(12))
element = ET.fromstring(
f"<inspection inn=\"{row_inn}\" registration_number=\"{reg_num}\" />"
f'<inspection inn="{row_inn}" registration_number="{reg_num}" />'
) # noqa: S314
client = ProverkiClient()
@@ -602,7 +601,7 @@ class ProverkiClientTest(TestCase):
inn = "".join(str(fake.random_int(0, 9)) for _ in range(10))
reg_num = "".join(str(fake.random_int(0, 9)) for _ in range(12))
xml_content = (
"<?xml version=\"1.0\" encoding=\"windows-1251\"?>"
'<?xml version="1.0" encoding="windows-1251"?>'
"<inspections>"
"<inspection>"
f"<inn>{inn}</inn>"