Skip to content

Python SDK — Testing

Mock Transport

Test without connecting to PhyCloud:

from phytrace.transport.mock import MockTransport
from phytrace import PhyTraceAgent, UDMEventBuilder, SourceType, EventType

async def test_event_emission():
    transport = MockTransport()
    agent = PhyTraceAgent(transport=transport)

    event = (
        UDMEventBuilder(source_id="robot-001", source_type=SourceType.AMR)
        .with_event_type(EventType.TELEMETRY_PERIODIC)
        .with_location(latitude=41.8781, longitude=-87.6298)
        .build()
    )

    await agent.emit(event)

    assert len(transport.sent_events) == 1
    assert transport.sent_events[0].source_id == "robot-001"

Mock Mode

Run the full agent in mock mode:

agent = PhyTraceAgent.from_config(
    "phytrace-agent.yaml",
    mock_mode=True,
)

events = agent.get_mock_events()

Local Dev Server

phytrace-dev-server --port 8080

Validation Tools

# Validate UDM events
phytrace validate events.jsonl

# Validate config
phytrace validate-config phytrace-agent.yaml

# Generate samples
phytrace generate-samples --source-type amr --count 100 > samples.jsonl