[OneDev #33] axon: add integration test wiring driver → bus → dispatcher → output #9

Open
opened 2026-05-24 04:46:36 +00:00 by joseph · 0 comments
Owner

Imported from OneDev issue #33 (id 35556)
Original project: internal-joseph
Original state: Open
Original submitterId: 5
Original submitDate: 2026-05-05T19:19:39.431+00:00
Original lastActivity: {'date': '2026-05-05T19:19:39.431+00:00', 'description': 'opened', 'userId': 5}

Original fields:

  • Type: New Feature
  • Priority: Normal
  • Assignees: None

Issue

axon v1 has solid unit-test coverage for each component (33 tests across 7 files) but no integration test that exercises the full pipeline — driver emits InputEvent → EventBus dispatches → Dispatcher resolves mapping → mock output called.

Each component is verified in isolation; the seams between them are unverified except by running the whole daemon on hardware.

Proposed test

tests/test_integration.py:

import threading
from unittest.mock import patch
from axon.bus import EventBus
from axon.dispatcher import Dispatcher
from axon.drivers.g915x import G915XDriver
from axon.profile import (
    Profile, DeviceConfig, Mapping, KeystrokeAction
)
# ... canned HID reports → driver → bus → dispatcher → mock send_keystroke

The point: catch any future regression at the seams (event publishing, mapping resolution, action dispatch) without needing hardware.

  • Plan: internal-joseph/docs/2026-05-05-inputd-core.md
  • Existing tests: axon/tests/test_*.py (component-level)
Imported from OneDev issue #33 (id 35556) Original project: internal-joseph Original state: Open Original submitterId: 5 Original submitDate: 2026-05-05T19:19:39.431+00:00 Original lastActivity: {'date': '2026-05-05T19:19:39.431+00:00', 'description': 'opened', 'userId': 5} Original fields: - Type: New Feature - Priority: Normal - Assignees: None ## Issue axon v1 has solid unit-test coverage for each component (33 tests across 7 files) but no integration test that exercises the full pipeline — driver emits InputEvent → EventBus dispatches → Dispatcher resolves mapping → mock output called. Each component is verified in isolation; the seams between them are unverified except by running the whole daemon on hardware. ## Proposed test `tests/test_integration.py`: ```python import threading from unittest.mock import patch from axon.bus import EventBus from axon.dispatcher import Dispatcher from axon.drivers.g915x import G915XDriver from axon.profile import ( Profile, DeviceConfig, Mapping, KeystrokeAction ) # ... canned HID reports → driver → bus → dispatcher → mock send_keystroke ``` The point: catch any future regression at the seams (event publishing, mapping resolution, action dispatch) without needing hardware. ## Related - Plan: `internal-joseph/docs/2026-05-05-inputd-core.md` - Existing tests: `axon/tests/test_*.py` (component-level)
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
joseph/internal-joseph#9
No description provided.