Open sasha-tkachev opened 1 year ago
Can you please point to a specific place where this is stated in the spec? I have a pretty hard time finding this in the spec.
It is specified only in the JSON format type system mapping I even think we MUST NOT allow None
values for attributes. Because it is not a supported attribute type
Unset attributes MAY be encoded to the JSON value of null
So looks like None
is a valid input.
Also, we're talking about JSON representation of the event, not about language-specific representation. IMO, it means that to_json(CloudEvent(attributes={"type": "a", "source": "a", "a": None}))
must be ==
to to_json(CloudEvent({"type": "a", "source":"a"}))
. But it does not require CloudEvent
instances to be equal.
Or actually:
from_json(to_json(CloudEvent(attributes={"type": "a", "source": "a", "a": None})))
must be ==
to from_json(to_json(CloudEvent({"type": "a", "source":"a"})))
So we must be treating JSON representation with null
or without a value in the very same way. But it is not required for the instance of CloudEvent
.
CloudEvent equality is incorrect on none attributes
expected
True
actual
False
the spec says that null value attributes are the same as non-existing attributes