diff --git a/tests/unit/base/test_values.py b/tests/unit/base/test_values.py new file mode 100644 index 000000000..f7e13c90e --- /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 16032b112..03dd2b0f2 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}