Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion azure-functions-extension-base/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# Azure Functions Extension Base library for Python
This is the base library for allowing Python Function Apps to recognize and bind to SDk-types and HttpV2-types. It is not to be used directly.
Instead, please reference one of the extending packages.
Instead, please reference one of the extending packages:
* azure-functions-extension-blob
* azure-functions-extension-fastapi
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
ModuleTrackerMeta,
RequestTrackerMeta,
ResponseTrackerMeta,
http_v2_enabled,
HttpV2FeatureChecker,
ResponseLabels
)

Expand All @@ -33,7 +33,7 @@
'ModuleTrackerMeta',
'RequestTrackerMeta',
'ResponseTrackerMeta',
'http_v2_enabled',
'HttpV2FeatureChecker',
'ResponseLabels',
'WebServer',
'WebApp'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,10 +115,10 @@ def __init__(self, hostname, port, web_app: WebApp):
async def serve(self):
pass


def http_v2_enabled() -> bool:
return ModuleTrackerMeta.module_imported()

class HttpV2FeatureChecker:
@staticmethod
def http_v2_enabled():
return ModuleTrackerMeta.module_imported()

class ResponseLabels(Enum):
STANDARD = 'standard'
Expand Down
14 changes: 7 additions & 7 deletions azure-functions-extension-base/tests/test_web.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
import unittest
from unittest.mock import MagicMock, patch
from unittest.mock import patch

from azure.functions.extension.base import (ModuleTrackerMeta, RequestTrackerMeta,
ResponseTrackerMeta, WebApp, WebServer,
http_v2_enabled, ResponseLabels)
HttpV2FeatureChecker, ResponseLabels)


class TestModuleTrackerMeta(unittest.TestCase):
def setUp(self):
# Reset the _module attribute after each test
ModuleTrackerMeta._module = None
self.assertFalse(http_v2_enabled())
self.assertFalse(HttpV2FeatureChecker.http_v2_enabled())

def test_classes_imported_from_same_module(self):
class TestClass1(metaclass=ModuleTrackerMeta):
Expand All @@ -20,14 +20,14 @@ class TestClass2(metaclass=ModuleTrackerMeta):

self.assertEqual(ModuleTrackerMeta.get_module(), __name__)
self.assertTrue(ModuleTrackerMeta.module_imported())
self.assertTrue(http_v2_enabled())
self.assertTrue(HttpV2FeatureChecker.http_v2_enabled())

def test_class_imported_from_a_module(self):
class TestClass1(metaclass=ModuleTrackerMeta):
pass
self.assertEqual(ModuleTrackerMeta.get_module(), __name__)
self.assertTrue(ModuleTrackerMeta.module_imported())
self.assertTrue(http_v2_enabled())
self.assertTrue(HttpV2FeatureChecker.http_v2_enabled())

def test_classes_imported_from_different_modules(self):
class TestClass1(metaclass=ModuleTrackerMeta):
Expand Down Expand Up @@ -210,7 +210,7 @@ class TestHttpV2Enabled(unittest.TestCase):
@patch('azure.functions.extension.base.ModuleTrackerMeta.module_imported')
def test_http_v2_enabled(self, mock_module_imported):
mock_module_imported.return_value = True
self.assertTrue(http_v2_enabled())
self.assertTrue(HttpV2FeatureChecker.http_v2_enabled())

mock_module_imported.return_value = False
self.assertFalse(http_v2_enabled())
self.assertFalse(HttpV2FeatureChecker.http_v2_enabled())