Feature/axis cli config#814
Open
Kane610 wants to merge 8 commits into
Open
Conversation
…g validation and TOML export - Implements minimal CLI with host, username, password args - Full docstrings and comments - Passes all pre-commit hooks (ruff, format, mypy)
… host, and missing args - Ensures CLI validates config and outputs TOML - Covers error handling and argument parsing - Passes all pre-commit hooks (ruff, format, mypy)
…nfig.toml (suppress print lint for UX)
…ccount management Phase 3: Event workflows - fetch_event_instances: retrieves EventInstance catalog via device.vapix.event_instances - list_event_instances_flow: prints topic/name/stateful/stateless/available table - events_flow: submenu with list, listen-all, listen-by-topic options - _live_listen_flow: async listener using device.event.subscribe + asyncio.Event for clean stop Phase 4: Account management - _validate_username: enforces 1-14 alphanumeric character constraint - _select_privilege: interactive SecondaryGroup picker with back option - _account_init_confirm: confirmation prompts outside async context (avoids ASYNC250) - _account_init_operation: async create/update dispatched via run_on_selected_device - account_management_flow: submenu with list/create-or-update/delete/back - _list_users_flow: fetches and displays current users - _create_or_update_user_flow: full guided create/update with validation + privilege selection - _delete_user_flow: explicit confirmation before permanent delete Updated selected_device_operations: adds options 3 (events) and 4 (account management) Tests: rewrote test_cli.py and test_cli_direct.py to match interactive CLI API; added comprehensive coverage for all new flows and helpers; overall coverage at 95.5% (threshold 95%)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What does this PR do?
[One-sentence summary, e.g., "Adds new PTZ handler with PARAM_CGI_FALLBACK support"]
Architecture Layer(s)
axis/models/)axis/interfaces/)axis/device.py,axis/interfaces/vapix.py)Type of Change
Related Issues
Closes #[issue number] (if applicable)
Verification Checklist
uv run ruff check .passesuv run ruff format --check .passesuv run mypy axispassesuv run pytestpasses (coverage ≥95%)_missing_fallback, input normalization, XML parsing guardsNotes for Reviewers
[Context for reviewers: what to focus on, known limitations, decisions made, or why this approach was chosen]