allow max_budget reset

This commit is contained in:
yuneng-jiang
2026-02-03 16:32:21 -08:00
parent c8f0d39b4d
commit cf256c742f
2 changed files with 22 additions and 1 deletions
@@ -813,9 +813,12 @@ def _update_internal_user_params(
data_json: dict, data: Union[UpdateUserRequest, UpdateUserRequestNoUserIDorEmail]
) -> dict:
non_default_values = {}
fields_set = data.fields_set() if hasattr(data, 'fields_set') else set()
for k, v in data_json.items():
if k == "max_budget":
non_default_values[k] = v
if "max_budget" in fields_set:
non_default_values[k] = v
elif (
v is not None
and v
@@ -1133,6 +1133,24 @@ def test_update_internal_user_params_ignores_other_nones():
assert non_default_values["max_budget"] == 100.0
def test_update_internal_user_params_keeps_original_max_budget_when_not_provided():
"""
Test that _update_internal_user_params does not include max_budget
when it's not provided in the request (should keep original value).
"""
# Create test data without max_budget
data_json = {"user_id": "test_user", "user_alias": "test_alias"}
data = UpdateUserRequest(user_id="test_user", user_alias="test_alias")
# Call the function
non_default_values = _update_internal_user_params(data_json=data_json, data=data)
# Assertions: max_budget should NOT be in non_default_values
assert "max_budget" not in non_default_values
assert "user_id" in non_default_values
assert "user_alias" in non_default_values
def test_generate_request_base_validator():
"""
Test that GenerateRequestBase validator converts empty string to None for max_budget