deploy updated source integrations
CI / compose (push) Successful in 13m17s

This commit is contained in:
Marco0300
2026-09-04 10:03:34 +02:00
parent cb31f2dd04
commit 39dadd6135
6 changed files with 205 additions and 16 deletions
+17 -1
View File
@@ -2,9 +2,17 @@ import json, os, sqlite3, threading, unittest
from http.client import HTTPConnection
from tempfile import TemporaryDirectory
from app.main import create_server
from app.sources import CsvSource, ManualSource
from app.sources import CsvSource, ManualSource, available_adapters
class SourceAdapterTests(unittest.TestCase):
def test_adapter_catalog_exposes_ready_and_gated_sources(self):
catalog = {item['source_code']: item for item in available_adapters()}
for code in ('manual', 'csv', 'public_website', 'ct_logs', 'dns', 'rdap'):
self.assertTrue(catalog[code]['available'], code)
for code in ('google_places', 'bing_local', 'approved_directory', 'permitted_social'):
self.assertFalse(catalog[code]['available'], code)
self.assertTrue(catalog[code]['optional'], code)
def test_csv_adapter_is_deterministic_and_normalizes(self):
src = CsvSource()
a = src.discover({'csv': 'Name,Website,Email\n Acme ,https://acme.test,a@acme.test\n'})
@@ -58,6 +66,14 @@ class SourceApiTests(unittest.TestCase):
def test_sources_require_auth(self):
self.cookie=None; self.assertEqual(self.req('GET','/api/v1/sources',cookie=False)[0],401)
def test_unavailable_or_unconfigured_sources_cannot_be_enabled(self):
status, gated = self.req('POST', '/api/v1/sources', {'name': 'Google', 'kind': 'google_places', 'config': {}})
self.assertEqual(status, 201)
self.assertEqual(self.req('PATCH', f"/api/v1/sources/{gated['id']}", {'enabled': True})[0], 409)
status, website = self.req('POST', '/api/v1/sources', {'name': 'Web', 'kind': 'public_website', 'config': {}})
self.assertEqual(status, 201)
self.assertEqual(self.req('PATCH', f"/api/v1/sources/{website['id']}", {'enabled': True})[0], 409)
def test_fresh_schema_accepts_optional_source_kind_fail_closed(self):
status, source = self.req('POST', '/api/v1/sources', {'name': 'RDAP', 'kind': 'rdap', 'config': {}})
self.assertEqual(status, 201)