mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
chore(agnosticism): close the audit residue — B6/B8/B10 + three MAJORs (#587)
Thread the deployer's product name through the X reply + feature-spotlight prompts (B6 leftover; release/video paths shipped in #570); make the docs-site repo/URL config (ROBOCO_DOCS_SITE_*, defaults unchanged) instead of a roboco-website hardcode (B8); de-assert our repo from the Main PM prompt (B10); derive PR labels from the real target branch instead of literal to-master/to-slave; drop the stale headcount from base.md; and make the bash-guard's Makefile check require an actual quality/gate/lint/ test target before denying raw package-manager commands (no more false-remediation loop on Go/Rust Makefiles). Co-authored-by: Renn F <rennf93@users.noreply.github.com>
This commit is contained in:
@@ -8,6 +8,7 @@ from uuid import uuid4
|
||||
|
||||
import pytest
|
||||
import pytest_asyncio
|
||||
from roboco.config import settings
|
||||
from roboco.db.tables import AgentTable, ProjectTable, TaskTable
|
||||
from roboco.models import AgentRole, AgentStatus, Team
|
||||
from roboco.models.base import (
|
||||
@@ -24,6 +25,7 @@ from roboco.services.base import (
|
||||
from roboco.services.docs import (
|
||||
DocsService,
|
||||
WriteDocInput,
|
||||
_refused_doc_types,
|
||||
get_docs_service,
|
||||
)
|
||||
from sqlalchemy import select
|
||||
@@ -183,6 +185,33 @@ async def test_write_doc_user_facing_refused(docs_setup: dict) -> None:
|
||||
assert "docs.roboco.tech" in str(exc_info.value)
|
||||
|
||||
|
||||
def test_refused_doc_types_uses_configured_docs_site(
|
||||
monkeypatch: pytest.MonkeyPatch,
|
||||
) -> None:
|
||||
"""A deployer's own docs-site slug/URL (ROBOCO_DOCS_SITE_*) reaches the
|
||||
refusal message instead of RoboCo's own docs site."""
|
||||
monkeypatch.setattr(settings, "docs_site_project_slug", "acme-docs")
|
||||
monkeypatch.setattr(settings, "docs_site_public_url", "docs.acme.example")
|
||||
message = _refused_doc_types()["user_facing"]
|
||||
assert "acme-docs" in message
|
||||
assert "docs.acme.example" in message
|
||||
assert "roboco-website" not in message
|
||||
assert "docs.roboco.tech" not in message
|
||||
|
||||
|
||||
def test_refused_doc_types_falls_back_when_unset(
|
||||
monkeypatch: pytest.MonkeyPatch,
|
||||
) -> None:
|
||||
"""An empty docs-site slug/URL degrades to a generic message, never a
|
||||
bare empty string spliced into the refusal text."""
|
||||
monkeypatch.setattr(settings, "docs_site_project_slug", "")
|
||||
monkeypatch.setattr(settings, "docs_site_public_url", "")
|
||||
message = _refused_doc_types()["user_facing"]
|
||||
assert "your docs-site project" in message
|
||||
assert "roboco-website" not in message
|
||||
assert "docs.roboco.tech" not in message
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_write_doc_path_traversal_in_filename(docs_setup: dict) -> None:
|
||||
svc = docs_setup["svc"]
|
||||
|
||||
Reference in New Issue
Block a user