Skip to content

Commit

Permalink
Exclude private fields from the result of Event.to_json (#56)
Browse files Browse the repository at this point in the history
  • Loading branch information
gtopper authored Oct 18, 2023
1 parent c3bd4ca commit 24f2927
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
6 changes: 5 additions & 1 deletion nuclio_sdk/event.py
Original file line number Diff line number Diff line change
Expand Up @@ -183,7 +183,11 @@ def __init__(
self.offset = offset or 0

def to_json(self):
obj = vars(self).copy()
obj = {}
for field_name, field_value in vars(self).items():
# exclude private fields
if not field_name.startswith("_"):
obj[field_name] = field_value
obj["trigger"] = {
"kind": self.trigger.kind,
"name": self.trigger.name,
Expand Down
8 changes: 8 additions & 0 deletions nuclio_sdk/test/test_event.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,3 +91,11 @@ def _deserialize_event(self, event):
return nuclio_sdk.event.Event.deserialize(
json.dumps(event_json), nuclio_sdk.event.EventDeserializerKinds.json
)

def test_event_to_json_excludes_private_fields(self):
request_body = "str-body"
event = nuclio_sdk.Event(body=request_body)
event._private_field = 1
event_obj = json.loads(event.to_json())
assert "body" in event_obj
assert "_private_field" not in event_obj

0 comments on commit 24f2927

Please sign in to comment.