62 lines
1.4 KiB
Python
62 lines
1.4 KiB
Python
from pathlib import Path
|
|
|
|
GENOME = Path('GENOME.md')
|
|
|
|
|
|
def read_genome() -> str:
|
|
assert GENOME.exists(), 'GENOME.md must exist at repo root'
|
|
return GENOME.read_text(encoding='utf-8')
|
|
|
|
|
|
def test_genome_exists():
|
|
assert GENOME.exists(), 'GENOME.md must exist at repo root'
|
|
|
|
|
|
def test_genome_has_required_sections():
|
|
text = read_genome()
|
|
for heading in [
|
|
'# GENOME.md — timmy-config',
|
|
'## Project Overview',
|
|
'## Architecture Diagram',
|
|
'## Entry Points and Data Flow',
|
|
'## Key Abstractions',
|
|
'## API Surface',
|
|
'## Test Coverage Gaps',
|
|
'## Security Considerations',
|
|
'## Performance Characteristics',
|
|
]:
|
|
assert heading in text
|
|
|
|
|
|
def test_genome_contains_mermaid_diagram():
|
|
text = read_genome()
|
|
assert '```mermaid' in text
|
|
assert 'graph TD' in text or 'flowchart TD' in text
|
|
|
|
|
|
def test_genome_mentions_core_timmy_config_files():
|
|
text = read_genome()
|
|
for token in [
|
|
'deploy.sh',
|
|
'config.yaml',
|
|
'gitea_client.py',
|
|
'orchestration.py',
|
|
'tasks.py',
|
|
'bin/',
|
|
'playbooks/',
|
|
'training/',
|
|
]:
|
|
assert token in text
|
|
|
|
|
|
def test_genome_explains_sidecar_boundary():
|
|
text = read_genome()
|
|
assert 'sidecar' in text.lower()
|
|
assert 'Hermes' in text
|
|
assert 'timmy-home' in text
|
|
|
|
|
|
def test_genome_is_substantial():
|
|
text = read_genome()
|
|
assert len(text) >= 5000
|