Skip to content

Commit d422a84

Browse files
committed
fixup! fix(6905): replace dynamic serializer with SDKAnalyticsFlagsV1Serializer
1 parent b8edc1d commit d422a84

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

api/app_analytics/serializers.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ def to_internal_value(self, data: Any) -> dict[str, int]:
137137
return {
138138
name: count
139139
for name, count in data.items()
140-
if isinstance(name, str) and isinstance(count, int)
140+
if isinstance(name, str) and type(count) is int
141141
}
142142

143143
def validate(self, attrs: dict[str, int]) -> dict[str, int]:

api/tests/unit/app_analytics/test_unit_app_analytics_views.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,31 @@ def test_sdk_analytics_flags_v1__non_dict_payload__returns_400(
7777
assert response.status_code == status.HTTP_400_BAD_REQUEST
7878

7979

80+
def test_sdk_analytics_flags_v1__boolean_count__is_skipped(
81+
mocker: MockerFixture,
82+
environment: Environment,
83+
feature: Feature,
84+
api_client: APIClient,
85+
) -> None:
86+
# Given
87+
api_client.credentials(HTTP_X_ENVIRONMENT_KEY=environment.api_key)
88+
data = {feature.name: True}
89+
mocked_feature_eval_cache = mocker.patch(
90+
"app_analytics.views.feature_evaluation_cache"
91+
)
92+
93+
url = reverse("api-v1:analytics-flags")
94+
95+
# When
96+
response = api_client.post(
97+
url, data=json.dumps(data), content_type="application/json"
98+
)
99+
100+
# Then
101+
assert response.status_code == status.HTTP_200_OK
102+
mocked_feature_eval_cache.track_feature_evaluation.assert_not_called()
103+
104+
80105
def test_sdk_analytics_ignores_bad_data(
81106
mocker: MockerFixture,
82107
environment: Environment,

0 commit comments

Comments
 (0)