Skip to content

Commit 7e74a60

Browse files
committed
Add assert checks in functions rpc interface
1 parent ced82aa commit 7e74a60

File tree

1 file changed

+75
-28
lines changed

1 file changed

+75
-28
lines changed

packages/service-library/src/servicelib/rabbitmq/rpc_interfaces/webserver/functions/functions_rpc_interface.py

Lines changed: 75 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,13 @@ async def register_function(
3232
*,
3333
function: Function,
3434
) -> Function:
35-
return await rabbitmq_rpc_client.request(
35+
result: Function = await rabbitmq_rpc_client.request(
3636
WEBSERVER_RPC_NAMESPACE,
3737
TypeAdapter(RPCMethodName).validate_python("register_function"),
3838
function=function,
3939
)
40+
assert isinstance(result, Function) # nosec
41+
return result
4042

4143

4244
@log_decorator(_logger, level=logging.DEBUG)
@@ -45,11 +47,13 @@ async def get_function(
4547
*,
4648
function_id: FunctionID,
4749
) -> Function:
48-
return await rabbitmq_rpc_client.request(
50+
result: Function = await rabbitmq_rpc_client.request(
4951
WEBSERVER_RPC_NAMESPACE,
5052
TypeAdapter(RPCMethodName).validate_python("get_function"),
5153
function_id=function_id,
5254
)
55+
assert isinstance(result, Function) # nosec
56+
return result
5357

5458

5559
@log_decorator(_logger, level=logging.DEBUG)
@@ -58,11 +62,13 @@ async def get_function_input_schema(
5862
*,
5963
function_id: FunctionID,
6064
) -> FunctionInputSchema:
61-
return await rabbitmq_rpc_client.request(
65+
result: FunctionInputSchema = await rabbitmq_rpc_client.request(
6266
WEBSERVER_RPC_NAMESPACE,
6367
TypeAdapter(RPCMethodName).validate_python("get_function_input_schema"),
6468
function_id=function_id,
6569
)
70+
assert isinstance(result, FunctionInputSchema) # nosec
71+
return result
6672

6773

6874
@log_decorator(_logger, level=logging.DEBUG)
@@ -71,11 +77,13 @@ async def get_function_output_schema(
7177
*,
7278
function_id: FunctionID,
7379
) -> FunctionOutputSchema:
74-
return await rabbitmq_rpc_client.request(
80+
result: FunctionOutputSchema = await rabbitmq_rpc_client.request(
7581
WEBSERVER_RPC_NAMESPACE,
7682
TypeAdapter(RPCMethodName).validate_python("get_function_output_schema"),
7783
function_id=function_id,
7884
)
85+
assert isinstance(result, FunctionOutputSchema) # nosec
86+
return result
7987

8088

8189
@log_decorator(_logger, level=logging.DEBUG)
@@ -84,11 +92,13 @@ async def delete_function(
8492
*,
8593
function_id: FunctionID,
8694
) -> None:
87-
return await rabbitmq_rpc_client.request(
95+
result: None = await rabbitmq_rpc_client.request(
8896
WEBSERVER_RPC_NAMESPACE,
8997
TypeAdapter(RPCMethodName).validate_python("delete_function"),
9098
function_id=function_id,
9199
)
100+
assert result is None # nosec
101+
return result
92102

93103

94104
@log_decorator(_logger, level=logging.DEBUG)
@@ -98,12 +108,17 @@ async def list_functions(
98108
pagination_limit: int,
99109
pagination_offset: int,
100110
) -> tuple[list[Function], PageMetaInfoLimitOffset]:
101-
return await rabbitmq_rpc_client.request(
102-
WEBSERVER_RPC_NAMESPACE,
103-
TypeAdapter(RPCMethodName).validate_python("list_functions"),
104-
pagination_offset=pagination_offset,
105-
pagination_limit=pagination_limit,
111+
result: tuple[list[Function], PageMetaInfoLimitOffset] = (
112+
await rabbitmq_rpc_client.request(
113+
WEBSERVER_RPC_NAMESPACE,
114+
TypeAdapter(RPCMethodName).validate_python("list_functions"),
115+
pagination_offset=pagination_offset,
116+
pagination_limit=pagination_limit,
117+
)
106118
)
119+
assert isinstance(result, tuple)
120+
assert len(result) == 2 # nosec
121+
assert isinstance(result[0], list) # nosec
107122

108123

109124
@log_decorator(_logger, level=logging.DEBUG)
@@ -113,12 +128,19 @@ async def list_function_jobs(
113128
pagination_limit: int,
114129
pagination_offset: int,
115130
) -> tuple[list[FunctionJob], PageMetaInfoLimitOffset]:
116-
return await rabbitmq_rpc_client.request(
117-
WEBSERVER_RPC_NAMESPACE,
118-
TypeAdapter(RPCMethodName).validate_python("list_function_jobs"),
119-
pagination_offset=pagination_offset,
120-
pagination_limit=pagination_limit,
131+
result: tuple[list[FunctionJob], PageMetaInfoLimitOffset] = (
132+
await rabbitmq_rpc_client.request(
133+
WEBSERVER_RPC_NAMESPACE,
134+
TypeAdapter(RPCMethodName).validate_python("list_function_jobs"),
135+
pagination_offset=pagination_offset,
136+
pagination_limit=pagination_limit,
137+
)
121138
)
139+
assert isinstance(result, tuple)
140+
assert len(result) == 2 # nosec
141+
assert isinstance(result[0], list) # nosec
142+
assert isinstance(result[1], PageMetaInfoLimitOffset) # nosec
143+
return result
122144

123145

124146
@log_decorator(_logger, level=logging.DEBUG)
@@ -128,12 +150,19 @@ async def list_function_job_collections(
128150
pagination_limit: int,
129151
pagination_offset: int,
130152
) -> tuple[list[FunctionJobCollection], PageMetaInfoLimitOffset]:
131-
return await rabbitmq_rpc_client.request(
132-
WEBSERVER_RPC_NAMESPACE,
133-
TypeAdapter(RPCMethodName).validate_python("list_function_job_collections"),
134-
pagination_offset=pagination_offset,
135-
pagination_limit=pagination_limit,
153+
result: tuple[list[FunctionJobCollection], PageMetaInfoLimitOffset] = (
154+
await rabbitmq_rpc_client.request(
155+
WEBSERVER_RPC_NAMESPACE,
156+
TypeAdapter(RPCMethodName).validate_python("list_function_job_collections"),
157+
pagination_offset=pagination_offset,
158+
pagination_limit=pagination_limit,
159+
)
136160
)
161+
assert isinstance(result, tuple)
162+
assert len(result) == 2 # nosec
163+
assert isinstance(result[0], list) # nosec
164+
assert isinstance(result[1], PageMetaInfoLimitOffset) # nosec
165+
return result
137166

138167

139168
@log_decorator(_logger, level=logging.DEBUG)
@@ -143,12 +172,14 @@ async def run_function(
143172
function_id: FunctionID,
144173
inputs: FunctionInputs,
145174
) -> FunctionJob:
146-
return await rabbitmq_rpc_client.request(
175+
result: FunctionJob = await rabbitmq_rpc_client.request(
147176
WEBSERVER_RPC_NAMESPACE,
148177
TypeAdapter(RPCMethodName).validate_python("run_function"),
149178
function_id=function_id,
150179
inputs=inputs,
151180
)
181+
assert isinstance(result, FunctionJob) # nosec
182+
return result
152183

153184

154185
@log_decorator(_logger, level=logging.DEBUG)
@@ -157,11 +188,13 @@ async def register_function_job(
157188
*,
158189
function_job: FunctionJob,
159190
) -> FunctionJob:
160-
return await rabbitmq_rpc_client.request(
191+
result: FunctionJob = await rabbitmq_rpc_client.request(
161192
WEBSERVER_RPC_NAMESPACE,
162193
TypeAdapter(RPCMethodName).validate_python("register_function_job"),
163194
function_job=function_job,
164195
)
196+
assert isinstance(result, FunctionJob) # nosec
197+
return result
165198

166199

167200
@log_decorator(_logger, level=logging.DEBUG)
@@ -170,11 +203,13 @@ async def get_function_job(
170203
*,
171204
function_job_id: FunctionJobID,
172205
) -> FunctionJob:
173-
return await rabbitmq_rpc_client.request(
206+
result: FunctionJob = await rabbitmq_rpc_client.request(
174207
WEBSERVER_RPC_NAMESPACE,
175208
TypeAdapter(RPCMethodName).validate_python("get_function_job"),
176209
function_job_id=function_job_id,
177210
)
211+
assert isinstance(result, FunctionJob) # nosec
212+
return result
178213

179214

180215
@log_decorator(_logger, level=logging.DEBUG)
@@ -183,11 +218,13 @@ async def delete_function_job(
183218
*,
184219
function_job_id: FunctionJobID,
185220
) -> None:
186-
return await rabbitmq_rpc_client.request(
221+
result: None = await rabbitmq_rpc_client.request(
187222
WEBSERVER_RPC_NAMESPACE,
188223
TypeAdapter(RPCMethodName).validate_python("delete_function_job"),
189224
function_job_id=function_job_id,
190225
)
226+
assert result is None # nosec
227+
return result
191228

192229

193230
@log_decorator(_logger, level=logging.DEBUG)
@@ -197,12 +234,16 @@ async def find_cached_function_job(
197234
function_id: FunctionID,
198235
inputs: FunctionInputs,
199236
) -> FunctionJob | None:
200-
return await rabbitmq_rpc_client.request(
237+
result: FunctionJob = await rabbitmq_rpc_client.request(
201238
WEBSERVER_RPC_NAMESPACE,
202239
TypeAdapter(RPCMethodName).validate_python("find_cached_function_job"),
203240
function_id=function_id,
204241
inputs=inputs,
205242
)
243+
if result is None:
244+
return None
245+
assert isinstance(result, FunctionJob) # nosec
246+
return result
206247

207248

208249
@log_decorator(_logger, level=logging.DEBUG)
@@ -211,11 +252,13 @@ async def register_function_job_collection(
211252
*,
212253
function_job_collection: FunctionJobCollection,
213254
) -> FunctionJobCollection:
214-
return await rabbitmq_rpc_client.request(
255+
result: FunctionJobCollection = await rabbitmq_rpc_client.request(
215256
WEBSERVER_RPC_NAMESPACE,
216257
TypeAdapter(RPCMethodName).validate_python("register_function_job_collection"),
217258
function_job_collection=function_job_collection,
218259
)
260+
assert isinstance(result, FunctionJobCollection) # nosec
261+
return result
219262

220263

221264
@log_decorator(_logger, level=logging.DEBUG)
@@ -224,11 +267,13 @@ async def get_function_job_collection(
224267
*,
225268
function_job_collection_id: FunctionJobCollectionID,
226269
) -> FunctionJobCollection:
227-
return await rabbitmq_rpc_client.request(
270+
result: FunctionJobCollection = await rabbitmq_rpc_client.request(
228271
WEBSERVER_RPC_NAMESPACE,
229272
TypeAdapter(RPCMethodName).validate_python("get_function_job_collection"),
230273
function_job_collection_id=function_job_collection_id,
231274
)
275+
assert isinstance(result, FunctionJobCollection) # nosec
276+
return result
232277

233278

234279
@log_decorator(_logger, level=logging.DEBUG)
@@ -237,8 +282,10 @@ async def delete_function_job_collection(
237282
*,
238283
function_job_collection_id: FunctionJobCollectionID,
239284
) -> None:
240-
return await rabbitmq_rpc_client.request(
285+
result: None = await rabbitmq_rpc_client.request(
241286
WEBSERVER_RPC_NAMESPACE,
242287
TypeAdapter(RPCMethodName).validate_python("delete_function_job_collection"),
243288
function_job_collection_id=function_job_collection_id,
244289
)
290+
assert result is None
291+
return result

0 commit comments

Comments
 (0)