Skip to main content

OpenShell E2E Test Category Index

Back to main doc | Test matrix

Overview

This directory contains detailed documentation for each E2E test category. Each doc explains what's being tested, shows the architecture under test with mermaid diagrams, and maps test functions to agent types.

Test Categories

#CategoryTest FileTestsPassSkipFocus
01Platform Healthtest_01_platform_health.py770Gateway, operator, agent pods
02A2A Connectivitytest_02_a2a_connectivity.py871JSON-RPC, agent card discovery
03Credential Securitytest_T1_6_credential_security.py15150secretKeyRef, policy mounting
04Sandbox Lifecycletest_04_sandbox_lifecycle.py770Sandbox CR CRUD, status observability
05Multi-Turn Conversationtest_05_multiturn_conversation.py1293Sequential messages, context isolation
06Conversation Resumetest_06_conversation_resume.py505Pod restart, PVC session restore
07Skill Executiontest_07_skill_execution.py27189PR review, RCA, security review
08Supervisor Enforcementtest_08_supervisor_enforcement.py11110Landlock, netns, OPA policy
09HITL Policytest_09_hitl_policy.py321OPA egress blocking
10Workspace Persistencetest_10_workspace_persistence.py871PVC data persistence

Totals: 136 tests, 102 passed (local Kind+LLM+NemoClaw), 34 skipped (Kind, fresh cluster)

Agent Type Coverage

Each test category covers ALL 7 agent types where applicable:

Agent IDTypeTests Cover
weather_agentCustom A2AA2A connectivity, multi-turn, security
adk_agentCustom A2ASkill execution, LLM interaction
claude_sdk_agentCustom A2ASkill execution, LLM interaction
weather_supervisedCustom A2A + supervisorSupervisor enforcement, HITL policy
openshell_claudeBuiltin sandboxWorkspace persistence, sandbox lifecycle
openshell_opencodeBuiltin sandboxWorkspace persistence, sandbox lifecycle
openshell_genericBuiltin sandboxWorkspace persistence, sandbox lifecycle

Unsupported combinations are explicitly skipped with documented reasons.

Using These Docs

Each test doc includes:

  1. What This Tests — capability being validated
  2. Architecture Under Test — mermaid diagram showing components + data flow
  3. Test Matrix — which agents pass/skip each test
  4. Test Details — per-test assertions, debug points, skip reasons
  5. Future Expansion — what's needed to enable skipped tests

Running Tests

# All tests
uv run pytest rossoctl/tests/e2e/openshell/ -v --timeout=300

# Single category
uv run pytest rossoctl/tests/e2e/openshell/test_01_platform_health.py -v

# With debug logging
uv run pytest rossoctl/tests/e2e/openshell/ -v --log-cli-level=INFO

# Skip destructive tests
export OPENSHELL_DESTRUCTIVE_TESTS=false

Test Status Legend

  • — test runs and passes
  • ⏭️ — test skips with documented reason (shown in test matrix)
  • — test not applicable for this agent type

Environment Variables

VariableDefaultPurpose
OPENSHELL_AGENT_NAMESPACEteam1Agent namespace
OPENSHELL_GATEWAY_NAMESPACEopenshell-systemGateway namespace
OPENSHELL_LLM_AVAILABLEfalseEnable LLM-dependent tests
OPENSHELL_DESTRUCTIVE_TESTSfalseEnable pod restart tests

Test File Organization

Tests are organized by capability, not by agent type. This ensures:

  • All agents are tested for each capability
  • Gaps are explicit (skipped with reason)
  • Test structure matches architecture docs
  • Easy to add new agent types (add column to matrix)