Commit cc8e478
Refactor: extract pure-logic base classes for async Phase 1 (#165)
Extract all I/O-free methods from _ODataClient and _BatchClient into
new shared base classes (_ODataBase, _BatchBase) so that a future async
sibling can inherit the same pure logic without duplicating code.
- Add data/_odata_base.py: _ODataBase with URL builders, payload
constructors, cache helpers, _RequestContext, _USER_AGENT,
_DEFAULT_EXPECTED_STATUSES, _extract_pagingcookie, _GUID_RE,
_CALL_SCOPE_CORRELATION_ID, and _http_logger initialisation
- Add data/_batch_base.py: _BatchBase with all intent dataclasses,
multipart serialisation, response parsing, and the pure table resolvers
- _ODataClient and _BatchClient now inherit from the respective base
classes and retain only the I/O-dependent methods
- Update test patch target for urlparse to _odata_base module
- All 1223 unit tests pass; overall coverage remains at 94%
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>1 parent 65aac7d commit cc8e478
5 files changed
Lines changed: 1304 additions & 1169 deletions
File tree
- src/PowerPlatform/Dataverse/data
- tests/unit/data
0 commit comments