Skip to content

ERA-12684: Add event geometry, state, and segments methods#39

Open
JoshuaVulcan wants to merge 5 commits intomainfrom
ERA-12684/event-geometry-state
Open

ERA-12684: Add event geometry, state, and segments methods#39
JoshuaVulcan wants to merge 5 commits intomainfrom
ERA-12684/event-geometry-state

Conversation

@JoshuaVulcan
Copy link
Copy Markdown
Contributor

@JoshuaVulcan JoshuaVulcan commented Feb 11, 2026

Summary

  • Adds get_event_geometry(), post_event_state(), and get_event_segments() to both ERClient (sync) and AsyncERClient (async)
  • Full test coverage for both sync and async clients with success, error, and edge case scenarios

Endpoints Covered

Endpoint Method Client Method
activity/event/{id}/geometry GET get_event_geometry(event_id)
activity/event/{id}/state POST post_event_state(event_id, state)
activity/event/{id}/segments GET get_event_segments(event_id)

Test Plan

  • All 113 tests pass (pytest tests/ -v)
  • Async geometry tests: success, not found, forbidden, null geometry
  • Async state tests: success, not found, bad request, forbidden, timeout
  • Async segments tests: success, empty, not found, forbidden
  • Sync geometry tests: success, not found, forbidden
  • Sync state tests: success, not found, forbidden
  • Sync segments tests: success, empty, not found, forbidden

Resolves ERA-12684

Implements event sub-resource endpoints for both ERClient and AsyncERClient:

- get_event_geometry(event_id): GET activity/event/{id}/geometry
- post_event_state(event_id, state): POST activity/event/{id}/state
- get_event_segments(event_id): GET activity/event/{id}/segments

Test coverage:
- Async tests using respx: success, not found, forbidden, bad request, timeout, empty results
- Sync tests using unittest.mock: success, not found, forbidden, empty results

ERA-12684

Co-authored-by: Cursor <cursoragent@cursor.com>
@JoshuaVulcan JoshuaVulcan added autoreviewing PR is currently being auto-reviewed and removed autoreviewing PR is currently being auto-reviewed labels Feb 11, 2026
@JoshuaVulcan JoshuaVulcan requested a review from a team as a code owner February 12, 2026 01:50
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds three new event sub-resource methods (get_event_geometry, post_event_state, get_event_segments) to both the synchronous ERClient and AsyncERClient, along with comprehensive test coverage for both clients.

Changes:

  • Added get_event_geometry(), post_event_state(), and get_event_segments() methods to both sync and async client classes in erclient/client.py
  • Added test suite for the sync client covering success, not found, and forbidden scenarios
  • Added test suite for the async client covering success, not found, forbidden, bad request, timeout, and null geometry edge cases

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.

File Description
erclient/client.py Adds 3 new event sub-resource methods to both ERClient and AsyncERClient
tests/sync_client/test_event_subresources.py New test file for sync client event sub-resource methods
tests/async_client/test_event_subresources.py New test file for async client event sub-resource methods

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

@@ -0,0 +1,156 @@
import json
import pytest

from erclient import (
ERClientException,
)
response = await er_client.get_event_geometry(EVENT_ID)
assert route.called
# data is None, which is falsy -- should return the full json since data is falsy
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants