mirror of https://github.com/langgenius/dify.git
chore: add guard tests for billing (#33831)
Co-authored-by: 非法操作 <hjlarry@163.com>
This commit is contained in:
parent
6a8fa7b54e
commit
886854eff8
|
|
@ -335,7 +335,11 @@ class BillingService:
|
|||
# Redis returns bytes, decode to string and parse JSON
|
||||
json_str = cached_value.decode("utf-8") if isinstance(cached_value, bytes) else cached_value
|
||||
plan_dict = json.loads(json_str)
|
||||
# NOTE (hj24): New billing versions may return timestamp as str, and validate_python
|
||||
# in non-strict mode will coerce it to the expected int type.
|
||||
# To preserve compatibility, always keep non-strict mode here and avoid strict mode.
|
||||
subscription_plan = subscription_adapter.validate_python(plan_dict)
|
||||
# NOTE END
|
||||
tenant_plans[tenant_id] = subscription_plan
|
||||
except Exception:
|
||||
logger.exception(
|
||||
|
|
|
|||
|
|
@ -1303,6 +1303,24 @@ class TestBillingServiceSubscriptionOperations:
|
|||
# Assert
|
||||
assert result == {}
|
||||
|
||||
def test_get_plan_bulk_converts_string_expiration_date_to_int(self, mock_send_request):
|
||||
"""Test bulk plan retrieval converts string expiration_date to int."""
|
||||
# Arrange
|
||||
tenant_ids = ["tenant-1"]
|
||||
mock_send_request.return_value = {
|
||||
"data": {
|
||||
"tenant-1": {"plan": "sandbox", "expiration_date": "1735689600"},
|
||||
}
|
||||
}
|
||||
|
||||
# Act
|
||||
result = BillingService.get_plan_bulk(tenant_ids)
|
||||
|
||||
# Assert
|
||||
assert "tenant-1" in result
|
||||
assert isinstance(result["tenant-1"]["expiration_date"], int)
|
||||
assert result["tenant-1"]["expiration_date"] == 1735689600
|
||||
|
||||
def test_get_plan_bulk_with_invalid_tenant_plan_skipped(self, mock_send_request):
|
||||
"""Test bulk plan retrieval when one tenant has invalid plan data (should skip that tenant)."""
|
||||
# Arrange
|
||||
|
|
|
|||
Loading…
Reference in New Issue