Skip to content

Commit eb013c2

Browse files
author
Rakshith Bhyravabhotla
authored
Required params must be positional (Azure#16194)
* Rquired positional param * data req * add test * oops
1 parent e4c4daa commit eb013c2

File tree

3 files changed

+23
-8
lines changed

3 files changed

+23
-8
lines changed

sdk/eventgrid/azure-eventgrid/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@
44

55
**Breaking Changes**
66
- `EventGridSharedAccessSignatureCredential` is deprecated in favor of `AzureSasCredential`.
7+
8+
**Bug Fixes**
9+
- `EventGridEvent` has two additional required positional parameters namely, `data` and `data_version`.
710

811
## 2.0.0b4 (2020-11-11)
912

sdk/eventgrid/azure-eventgrid/azure/eventgrid/_models.py

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -136,14 +136,17 @@ class EventGridEvent(InternalEventGridEvent, EventMixin):
136136
137137
All required parameters must be populated in order to send to Azure.
138138
139-
:param topic: The resource path of the event source. If not provided, Event Grid will stamp onto the event.
140-
:type topic: str
141139
:param subject: Required. A resource path relative to the topic path.
142140
:type subject: str
143-
:param data: Event data specific to the event type.
144-
:type data: object
145141
:param event_type: Required. The type of the event that occurred.
146142
:type event_type: str
143+
:param data: Required. Event data specific to the event type.
144+
:type data: object
145+
:param data_version: Required. The schema version of the data object.
146+
If not provided, will be stamped with an empty value.
147+
:type data_version: str
148+
:param topic: The resource path of the event source. If not provided, Event Grid will stamp onto the event.
149+
:type topic: str
147150
:ivar metadata_version: The schema version of the event metadata. If provided, must match Event Grid Schema exactly.
148151
If not provided, EventGrid will stamp onto event.
149152
:vartype metadata_version: str
@@ -177,13 +180,14 @@ class EventGridEvent(InternalEventGridEvent, EventMixin):
177180
'data_version': {'key': 'dataVersion', 'type': 'str'},
178181
}
179182

180-
def __init__(self, subject, event_type, **kwargs):
181-
# type: (str, str, Any) -> None
183+
def __init__(self, subject, event_type, data, data_version, **kwargs):
184+
# type: (str, str, object, str, Any) -> None
182185
kwargs.setdefault('id', uuid.uuid4())
183186
kwargs.setdefault('subject', subject)
184187
kwargs.setdefault("event_type", event_type)
185188
kwargs.setdefault('event_time', dt.datetime.now(UTC()).isoformat())
186-
kwargs.setdefault('data', None)
189+
kwargs.setdefault('data', data)
190+
kwargs.setdefault('data_version', data_version)
187191

188192
super(EventGridEvent, self).__init__(**kwargs)
189193

sdk/eventgrid/azure-eventgrid/tests/test_serialization.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
from devtools_testutils import AzureMgmtTestCase
1616
from msrest.serialization import UTC
17-
from azure.eventgrid import CloudEvent
17+
from azure.eventgrid import CloudEvent, EventGridEvent
1818
from azure.eventgrid import models
1919
from azure.eventgrid._generated import models as internal_models
2020
from _mocks import (
@@ -109,3 +109,11 @@ def test_models_exist_in_namespace(self):
109109

110110
diff = {m for m in list(set(generated) - set(exposed)) if not m.startswith('_')}
111111
assert diff == {'CloudEvent', 'EventGridEvent'}
112+
113+
def test_event_grid_event_raises_on_no_data(self):
114+
with pytest.raises(TypeError):
115+
eg_event = EventGridEvent(
116+
subject="sample",
117+
event_type="Sample.EventGrid.Event",
118+
data_version="2.0"
119+
)

0 commit comments

Comments
 (0)