Skip to content

Commit ff2e803

Browse files
YunchuWanggavin-aguiarhallvictoria
authored
fix asgi/wsgifunctionapps to extend bindingapi/settingapi (#209)
Co-authored-by: gavin-aguiar <[email protected]> Co-authored-by: hallvictoria <[email protected]>
1 parent 7904799 commit ff2e803

File tree

3 files changed

+26
-7
lines changed

3 files changed

+26
-7
lines changed

azure/functions/decorators/function_app.py

+7-1
Original file line numberDiff line numberDiff line change
@@ -3313,7 +3313,13 @@ class Blueprint(TriggerApi, BindingApi, SettingsApi):
33133313
pass
33143314

33153315

3316-
class ExternalHttpFunctionApp(FunctionRegister, TriggerApi, ABC):
3316+
class ExternalHttpFunctionApp(
3317+
FunctionRegister,
3318+
TriggerApi,
3319+
SettingsApi,
3320+
BindingApi,
3321+
ABC
3322+
):
33173323
"""Interface to extend for building third party http function apps."""
33183324

33193325
@abc.abstractmethod

tests/decorators/test_function_app.py

+16-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# Copyright (c) Microsoft Corporation. All rights reserved.
22
# Licensed under the MIT License.
3+
from abc import ABC
34
import inspect
45
import json
56
import unittest
@@ -11,10 +12,12 @@
1112
TIMER_TRIGGER
1213
from azure.functions.decorators.core import DataType, AuthLevel, \
1314
BindingDirection, SCRIPT_FILE_NAME
14-
from azure.functions.decorators.function_app import BindingApi, \
15-
FunctionBuilder, FunctionApp, Function, Blueprint, DecoratorApi, \
16-
AsgiFunctionApp, WsgiFunctionApp, HttpFunctionsAuthLevelMixin, \
17-
FunctionRegister, TriggerApi, ExternalHttpFunctionApp
15+
from azure.functions.decorators.function_app import (
16+
BindingApi, FunctionBuilder, FunctionApp, Function, Blueprint,
17+
DecoratorApi, AsgiFunctionApp, SettingsApi, WsgiFunctionApp,
18+
HttpFunctionsAuthLevelMixin, FunctionRegister, TriggerApi,
19+
ExternalHttpFunctionApp
20+
)
1821
from azure.functions.decorators.http import HttpTrigger, HttpOutput, \
1922
HttpMethod
2023
from azure.functions.decorators.retry_policy import RetryPolicy
@@ -322,6 +325,15 @@ def test_add_wsgi(self, add_http_app_mock):
322325
self.assertIsInstance(add_http_app_mock.call_args[0][0],
323326
WsgiMiddleware)
324327

328+
def test_extends_required_classes(self):
329+
self.assertTrue(issubclass(ExternalHttpFunctionApp, FunctionRegister))
330+
self.assertTrue(issubclass(ExternalHttpFunctionApp, TriggerApi))
331+
self.assertTrue(issubclass(ExternalHttpFunctionApp, SettingsApi))
332+
self.assertTrue(issubclass(ExternalHttpFunctionApp, BindingApi))
333+
self.assertTrue(issubclass(ExternalHttpFunctionApp, ABC))
334+
self.assertTrue(issubclass(AsgiFunctionApp, ExternalHttpFunctionApp))
335+
self.assertTrue(issubclass(WsgiFunctionApp, ExternalHttpFunctionApp))
336+
325337
def test_add_asgi_app(self):
326338
self._test_http_external_app(AsgiFunctionApp(app=object()), True)
327339

tests/test_http.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -181,9 +181,10 @@ def test_http_response_does_not_have_explicit_output(self):
181181

182182
def test_http_response_accepts_http_enums(self):
183183
response = func.HttpResponse(status_code=404)
184-
self.assertEquals(response.status_code, 404)
184+
self.assertEqual(response.status_code, 404)
185+
185186
response = func.HttpResponse(status_code=HTTPStatus.ACCEPTED)
186-
self.assertEquals(response.status_code, 202)
187+
self.assertEqual(response.status_code, HTTPStatus.ACCEPTED.value)
187188

188189
def test_http_request_converter_decode(self):
189190
data = {

0 commit comments

Comments
 (0)