Skip to content

Commit d4ddb8f

Browse files
authored
feat: settlement decorator changes (#297)
* settlement decorator changes * lint
1 parent d2e5d9f commit d4ddb8f

File tree

2 files changed

+60
-0
lines changed

2 files changed

+60
-0
lines changed

azure/functions/decorators/function_app.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -673,6 +673,7 @@ def service_bus_queue_trigger(
673673
access_rights: Optional[Union[AccessRights, str]] = None,
674674
is_sessions_enabled: Optional[bool] = None,
675675
cardinality: Optional[Union[Cardinality, str]] = None,
676+
auto_complete_messages: Optional[bool] = None,
676677
**kwargs: Any) -> Callable[..., Any]:
677678
"""
678679
The `on_service_bus_queue_change` decorator adds :class:`ServiceBusQueueTrigger` to the
@@ -697,6 +698,8 @@ def service_bus_queue_trigger(
697698
:param is_sessions_enabled: Set to True if connecting to a session-aware queue
698699
or subscription.
699700
:param cardinality: Set to "many" to enable batching.
701+
:param auto_complete_messages: Indicates whether the message should be automatically
702+
completed.
700703
701704
:return: Decorator function.
702705
"""
@@ -717,6 +720,7 @@ def decorator():
717720
is_sessions_enabled=is_sessions_enabled,
718721
cardinality=parse_singular_param_to_enum(cardinality,
719722
Cardinality),
723+
auto_complete_messages=auto_complete_messages,
720724
**kwargs))
721725
return fb
722726

@@ -734,6 +738,7 @@ def service_bus_topic_trigger(
734738
access_rights: Optional[Union[AccessRights, str]] = None,
735739
is_sessions_enabled: Optional[bool] = None,
736740
cardinality: Optional[Union[Cardinality, str]] = None,
741+
auto_complete_messages: Optional[bool] = None,
737742
**kwargs: Any) -> Callable[..., Any]:
738743
"""
739744
The `on_service_bus_topic_change` decorator adds :class:`ServiceBusTopicTrigger` to the
@@ -759,6 +764,8 @@ def service_bus_topic_trigger(
759764
:param is_sessions_enabled: Set to True if connecting to a session-aware queue
760765
or subscription.
761766
:param cardinality: Set to "many" to enable batching.
767+
:param auto_complete_messages: Indicates whether the message should be automatically
768+
completed.
762769
763770
:return: Decorator function.
764771
"""
@@ -780,6 +787,7 @@ def decorator():
780787
is_sessions_enabled=is_sessions_enabled,
781788
cardinality=parse_singular_param_to_enum(cardinality,
782789
Cardinality),
790+
auto_complete_messages=auto_complete_messages,
783791
**kwargs))
784792
return fb
785793

tests/decorators/test_servicebus.py

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,31 @@ def test_service_bus_queue_trigger_valid_creation(self):
3535
"cardinality": Cardinality.ONE
3636
})
3737

38+
def test_service_bus_queue_trigger_autocomplete_valid_creation(self):
39+
trigger = ServiceBusQueueTrigger(name="req", connection="dummy_conn",
40+
queue_name="dummy_queue",
41+
data_type=DataType.UNDEFINED,
42+
access_rights=AccessRights.MANAGE,
43+
is_sessions_enabled=True,
44+
cardinality=Cardinality.ONE,
45+
auto_complete_messages=True,
46+
dummy_field="dummy")
47+
48+
self.assertEqual(trigger.get_binding_name(), "serviceBusTrigger")
49+
self.assertEqual(trigger.get_dict_repr(), {
50+
"type": SERVICE_BUS_TRIGGER,
51+
"direction": BindingDirection.IN,
52+
'dummyField': 'dummy',
53+
"name": "req",
54+
"connection": "dummy_conn",
55+
"queueName": "dummy_queue",
56+
"dataType": DataType.UNDEFINED,
57+
"accessRights": AccessRights.MANAGE,
58+
"isSessionsEnabled": True,
59+
"cardinality": Cardinality.ONE,
60+
"autoCompleteMessages": True
61+
})
62+
3863
def test_service_bus_queue_output_valid_creation(self):
3964
service_bus_queue_output = ServiceBusQueueOutput(
4065
name="res",
@@ -82,6 +107,33 @@ def test_service_bus_topic_trigger_valid_creation(self):
82107
"cardinality": Cardinality.ONE
83108
})
84109

110+
def test_service_bus_topic_trigger_autocomplete_valid_creation(self):
111+
trigger = ServiceBusTopicTrigger(name="req", connection="dummy_conn",
112+
topic_name="dummy_topic",
113+
subscription_name="dummy_sub",
114+
data_type=DataType.UNDEFINED,
115+
access_rights=AccessRights.MANAGE,
116+
is_sessions_enabled=True,
117+
cardinality=Cardinality.ONE,
118+
auto_complete_messages=True,
119+
dummy_field="dummy")
120+
121+
self.assertEqual(trigger.get_binding_name(), "serviceBusTrigger")
122+
self.assertEqual(trigger.get_dict_repr(), {
123+
"type": SERVICE_BUS_TRIGGER,
124+
"direction": BindingDirection.IN,
125+
'dummyField': 'dummy',
126+
"name": "req",
127+
"connection": "dummy_conn",
128+
"topicName": "dummy_topic",
129+
"subscriptionName": "dummy_sub",
130+
"dataType": DataType.UNDEFINED,
131+
"accessRights": AccessRights.MANAGE,
132+
"isSessionsEnabled": True,
133+
"cardinality": Cardinality.ONE,
134+
"autoCompleteMessages": True
135+
})
136+
85137
def test_service_bus_topic_output_valid_creation(self):
86138
output = ServiceBusTopicOutput(name="res", connection="dummy_conn",
87139
topic_name="dummy_topic",

0 commit comments

Comments
 (0)