Updating python sdk to include group_by at dashboard level#703
Merged
yec-akamai merged 3 commits intoJun 4, 2026
Conversation
shkaruna
approved these changes
Jun 2, 2026
mawilk90
approved these changes
Jun 3, 2026
yec-akamai
approved these changes
Jun 4, 2026
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.
📝 Description
Updating python sdk to include group_by at dashboard level
What does this PR do and why is this change necessary?
Adds full SDK support for Monitor Dashboards (list, get, filter by service type) used by tests and examples.
Ensures dashboard-level and widget-level [group_by] fields are parsed and exposed as per the latest API response.
Makes integration fixtures resilient to new dashboard types and groupings, ensuring robust response throughout.
This change is necessary because:
The SDK was missing support for dashboard-level [group_by] causing mismatches with the API response.
✔️ How to Test
Clone the repository
Prepare environment (zsh / macOS)
✔️create & activate venv (recommended)
python3 -m venv .venv
source .venv/bin/activate
install deps
python -m pip install --upgrade pip
Install runtime dependencies:
pip3 install requests polling deprecated
Install dev/test extras
pip3 install -e '.[dev,test]'
test deps
pip3 install pytest mock httpretty pytest-rerunfailures
✔️How do I run the relevant unit tests?
cd <PROJECT_DIRECTORY>/linode_api4-python
Unit tests: python -m pytest test/unit -q
Unit test for all monitor: python -m pytest test/unit/objects/monitor_test.py -q -s
Single unit: python -m pytest test/unit/objects/monitor_test.py::MonitorTest -q -s
What are the steps to reproduce the issue or verify the changes?
End to end integration testing should suffice
✔️How do I run the relevant integration tests?
Integration tests (E2E):
Note:
#if you have PAT token with write access only to Monitor and read for rest of the services for integration
export SKIP_E2E_FIREWALL=1 # optional: skip firewall autouse fixture
export LINODE_TOKEN="YOUR_REAL_TOKEN" # required for integration
export SKIP_E2E_FIREWALL=1 # optional: skip firewall autouse fixture
python -m pytest test/integration/models/monitor/test_monitor.py::test_get_all_dashboards -q -s