From 42aa4d6e809f9780e2d4c08a7bd9264ba2c1cf5a Mon Sep 17 00:00:00 2001 From: Curtis Mason Date: Tue, 28 Jul 2020 09:05:22 -0700 Subject: [PATCH 1/3] fixed none data issue Signed-off-by: Curtis Mason --- cloudevents/sdk/http/event.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cloudevents/sdk/http/event.py b/cloudevents/sdk/http/event.py index 1e2dd9e9..c7d4b0a8 100644 --- a/cloudevents/sdk/http/event.py +++ b/cloudevents/sdk/http/event.py @@ -24,7 +24,7 @@ def default_marshaller(content: any): - if len(content) == 0: + if content is None or len(content) == 0: return None try: return json.dumps(content) From f204dfa30e22e4670da5dec04600b5a92acb0c8b Mon Sep 17 00:00:00 2001 From: Curtis Mason Date: Tue, 28 Jul 2020 09:13:02 -0700 Subject: [PATCH 2/3] added none data test for marshalling Signed-off-by: Curtis Mason --- cloudevents/tests/test_http_events.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cloudevents/tests/test_http_events.py b/cloudevents/tests/test_http_events.py index eba7a20f..6327c326 100644 --- a/cloudevents/tests/test_http_events.py +++ b/cloudevents/tests/test_http_events.py @@ -401,3 +401,11 @@ def test_cloudevent_repr(specversion): # we had issues in the past where event.__repr__() could run but # print(event) would fail. print(event) + + +@pytest.mark.parametrize("specversion", ["1.0", "0.3"]) +def test_none_data_cloudevent(specversion): + event = CloudEvent({"source": "", "type": "issue.example", "specversion": specversion}) + to_binary_http(event) + to_structured_http(event) + From 24f37c0d89260dc0bae44ea3de2371ea627c402e Mon Sep 17 00:00:00 2001 From: Curtis Mason Date: Tue, 28 Jul 2020 09:15:12 -0700 Subject: [PATCH 3/3] lint fix Signed-off-by: Curtis Mason --- cloudevents/tests/test_http_events.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cloudevents/tests/test_http_events.py b/cloudevents/tests/test_http_events.py index 6327c326..140fb823 100644 --- a/cloudevents/tests/test_http_events.py +++ b/cloudevents/tests/test_http_events.py @@ -405,7 +405,12 @@ def test_cloudevent_repr(specversion): @pytest.mark.parametrize("specversion", ["1.0", "0.3"]) def test_none_data_cloudevent(specversion): - event = CloudEvent({"source": "", "type": "issue.example", "specversion": specversion}) + event = CloudEvent( + { + "source": "", + "type": "issue.example", + "specversion": specversion, + } + ) to_binary_http(event) to_structured_http(event) -