Flagsmith / Flagsmith/flagsmith-python-client
Adopt shared mapper test data from engine-test-data
- Dominant language
- Python
- Stars
- 24
- Forks
- 12
- Avg merge
- 15h 43m
- Merged PRs (30d)
- 4
Description
Mapper tests use inline expected context data rather than shared test cases from engine-test-data repository.
## Acceptance criteria
- [ ] mapper_test_cases pass (see Flagsmith/engine-test-data#46)
- [ ] Identity override virtual segment key generation matches cross-SDK portable standard (JSON + SHA256)
## Technical context
Current implementation uses non-portable hash:
https://github.com/Flagsmith/flagsmith-python-client/blob/c0d57ec4cd208b79908298e6cf9a3504e5d42fda/flagsmith/mappers.py#L182
Portable standard (JSON + SHA256):
- PHP: https://github.com/Flagsmith/flagsmith-php-client/pull/124/files#diff-5872f438d0e149e75ba3660c6b8e7ec8af446b87ea6a4e70f45f7e8e9e7b9c4dR208
- .NET: https://github.com/Flagsmith/flagsmith-dotnet-client/pull/177/files#diff-f851c822fa0e162b75312b6b9ab5dc31d3631179a33360ec77bbb83f4ae7c50eR249
Shared test data: https://github.com/Flagsmith/engine-test-data/pull/46
Related issues:
- Flagsmith/flagsmith-ruby-client#93
- Flagsmith/flagsmith-java-client#197
- Flagsmith/flagsmith-nodejs-client#228
- Flagsmith/flagsmith-go-client#196
- Flagsmith/flagsmith-rust-flag-engine#26
- Flagsmith/flagsmith-dotnet-client#180
Contributor guide
Research direction
Start with flagsmith/mappers.py around line 182 and inspect the existing mapper tests. Review engine-test-data pull request #46 and the mapper_test_cases, then compare the linked PHP and .NET implementations. Done means the shared cases pass and identity override virtual segment keys follow the JSON plus SHA256 portable standard.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend, testing-qa
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100