From ceb794fe3679c79e65b413d1d02c46e792384349 Mon Sep 17 00:00:00 2001 From: rezatati Date: Sat, 22 Aug 2026 21:34:32 +0330 Subject: [PATCH] Fix unset sentinel comparison in values.of --- tests/unit/base/test_values.py | 34 ++++++++++++++++++++++++++++++++++ twilio/base/values.py | 2 +- 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 tests/unit/base/test_values.py diff --git a/tests/unit/base/test_values.py b/tests/unit/base/test_values.py new file mode 100644 index 0000000000..f7e13c90ea --- /dev/null +++ b/tests/unit/base/test_values.py @@ -0,0 +1,34 @@ +from twilio.base.values import of, unset + + +def test_of_removes_unset_values(): + result = of( + { + "foo": "bar", + "unset": unset, + } + ) + + assert result == { + "foo": "bar", + } + + +class EqualToUnset: + def __eq__(self, other): + return other is unset + + +def test_of_only_removes_unset_sentinel(): + value = EqualToUnset() + + result = of( + { + "value": value, + "unset": unset, + } + ) + + assert result == { + "value": value, + } diff --git a/twilio/base/values.py b/twilio/base/values.py index 16032b1120..03dd2b0f21 100644 --- a/twilio/base/values.py +++ b/twilio/base/values.py @@ -10,4 +10,4 @@ def of(d: Dict[str, object]) -> Dict[str, object]: :param d: A dict to strip. :return A dict with unset values removed. """ - return {k: v for k, v in d.items() if v != unset} + return {k: v for k, v in d.items() if v is not unset}