decomposer: generate deliverable files for Define the normalized ingestion contract and pluggable source-connector interface for SCM, CMS, and other content sources.; Implement a GitHub SCM connector that conforms to the normalized ingestion contract and supports scoped full and incremental ingestion of Markdown, plain-text, and source files with webhook and revision metadata.; Implement a SharePoint CMS connector that conforms to the normalized ingestion contract and supports scoped full and incremental ingestion of PDF, DOCX, and HTML files with webhook and revision metadata.; Implement ingestion orchestration and triggers; Normalize, govern, and publish ingested content to the shared knowledge store.; Add deployment/configuration, tests, and documentation for the ingestion agent.; Validate end-to-end ingestion and downstream content availability.
Some checks failed
ci / test (push) Failing after 8s
Some checks failed
ci / test (push) Failing after 8s
This commit is contained in:
17
tests/test_connectors.py
Normal file
17
tests/test_connectors.py
Normal file
@@ -0,0 +1,17 @@
|
||||
from datetime import datetime, timezone
|
||||
from kab_ingestion.github import GitHubConnector
|
||||
from kab_ingestion.sharepoint import SharePointConnector
|
||||
class Secrets:
|
||||
def get(self, ref): return 'token'
|
||||
class GH:
|
||||
def list_files(self,*a): return [{'path':'docs/a.md','content':'hello','mime_type':'text/markdown','sha':'1','html_url':'u'}]
|
||||
def list_changed(self,*a): return self.list_files()
|
||||
class SP:
|
||||
def list_files(self,*a): return [{'id':'1','name':'a.html','text':'x','mime_type':'text/html','web_url':'u','last_modified':datetime.now(timezone.utc)}]
|
||||
def delta(self,*a): return self.list_files(), 'next'
|
||||
def test_github_scope_and_normalization():
|
||||
c=GitHubConnector(GH(),Secrets(),{'owner':'o','repo':'r','path_prefix':'docs/','credential_ref':'s'})
|
||||
assert c.full('t').documents[0].document_id == 'github:1'
|
||||
def test_sharepoint_normalization():
|
||||
c=SharePointConnector(SP(),Secrets(),{'site_id':'s','drive_id':'d','credential_ref':'x'})
|
||||
assert c.full('t').documents[0].mime_type == 'text/html'
|
||||
Reference in New Issue
Block a user