Flagsmith / Flagsmith/flagsmith-python-client

Adopt shared mapper test data from engine-test-data

Open
#181 0 comments 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.