This commit is contained in:
@@ -113,6 +113,24 @@ class SourceApiTests(unittest.TestCase):
|
||||
second={**payload,'name':'OpenStreetMap / Overpass · plumbers · Durban'}
|
||||
status, other=self.req('POST','/api/v1/sources',second); self.assertEqual(status,201); self.assertTrue(other['created']); self.assertNotEqual(other['id'],created['id'])
|
||||
|
||||
def test_source_registry_exposes_first_class_governance_fields(self):
|
||||
payload = {
|
||||
'name': 'Governed manual', 'kind': 'manual', 'config': {'rows': []},
|
||||
'policy': {'owner': 'Research Ops', 'terms_url': 'https://example.test/terms', 'terms_status': 'approved', 'rate_limit': '60/hour'},
|
||||
'quota': {'daily_quota': 200},
|
||||
}
|
||||
status, created = self.req('POST', '/api/v1/sources', payload)
|
||||
self.assertEqual(status, 201)
|
||||
status, items = self.req('GET', '/api/v1/sources')
|
||||
self.assertEqual(status, 200)
|
||||
source = next(item for item in items['items'] if item['id'] == created['id'])
|
||||
self.assertEqual(source['owner'], 'Research Ops')
|
||||
self.assertEqual(source['terms_url'], 'https://example.test/terms')
|
||||
self.assertEqual(source['terms_status'], 'approved')
|
||||
self.assertEqual(source['rate_limit'], '60/hour')
|
||||
self.assertEqual(source['daily_quota'], 200)
|
||||
self.assertFalse(source['credentials_configured'])
|
||||
|
||||
def test_source_configuration_rejects_discovery_criteria(self):
|
||||
forbidden = {'query': 'plumbers', 'category': 'trades', 'city': 'Cape Town', 'location': 'Western Cape'}
|
||||
for field, value in forbidden.items():
|
||||
|
||||
Reference in New Issue
Block a user