Skip to content

Commit 2f20771

Browse files
author
Victoria Hall
committed
unit test fixes
1 parent 8e34719 commit 2f20771

File tree

5 files changed

+30
-15
lines changed

5 files changed

+30
-15
lines changed

azure_functions_worker/utils/config_manager.py

Lines changed: 21 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def config_exists() -> bool:
3030
global config_data
3131
if config_data is None:
3232
read_config("")
33-
return config_data is not {}
33+
return config_data is not None
3434

3535

3636
def get_config() -> dict:
@@ -52,20 +52,22 @@ def is_false_like(setting: str) -> bool:
5252

5353

5454
def is_envvar_true(key: str) -> bool:
55+
key_upper = key.upper()
5556
# special case for PYTHON_ENABLE_DEBUG_LOGGING
5657
# This is read by the host and must be set in os.environ
57-
if key == "PYTHON_ENABLE_DEBUG_LOGGING":
58-
val = os.getenv(key)
58+
if key_upper == "PYTHON_ENABLE_DEBUG_LOGGING":
59+
val = os.getenv(key_upper)
5960
return is_true_like(val)
60-
if config_exists() and config_data.get(key) is not None:
61-
return is_true_like(config_data.get(key))
62-
return False
61+
if config_exists() and not config_data.get(key_upper):
62+
return False
63+
return is_true_like(config_data.get(key_upper))
6364

6465

6566
def is_envvar_false(key: str) -> bool:
66-
if config_exists() and config_data.get(key) is not None:
67-
return is_false_like(config_data.get(key))
68-
return False
67+
key_upper = key.upper()
68+
if config_exists() and not config_data.get(key_upper):
69+
return False
70+
return is_false_like(config_data.get(key_upper))
6971

7072

7173
def get_app_setting(
@@ -93,9 +95,10 @@ def get_app_setting(
9395
Optional[str]
9496
A string value that is set in the application setting
9597
"""
96-
if config_exists() and config_data.get(setting) is not None:
98+
setting_upper = setting.upper()
99+
if config_exists() and config_data.get(setting_upper) is not None:
97100
# Setting exists, check with validator
98-
app_setting_value = config_data.get(setting)
101+
app_setting_value = config_data.get(setting_upper)
99102

100103
# If there's no validator, return the app setting value directly
101104
if validator is None:
@@ -120,3 +123,10 @@ def set_env_var(setting: str, value: str):
120123
def del_env_var(setting: str):
121124
global config_data
122125
config_data.pop(setting, None)
126+
127+
128+
def clear_config():
129+
global config_data
130+
if config_data is not None:
131+
config_data.clear()
132+
config_data = None

tests/unittests/test_dispatcher.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
PYTHON_THREADPOOL_THREAD_COUNT_MIN,
2424
)
2525
from azure_functions_worker.dispatcher import Dispatcher, ContextEnabledTask
26+
from azure_functions_worker.utils import config_manager
2627
from azure_functions_worker.version import VERSION
2728

2829
SysVersionInfo = col.namedtuple("VersionInfo", ["major", "minor", "micro",
@@ -62,6 +63,7 @@ def tearDown(self):
6263
os.environ.clear()
6364
os.environ.update(self._pre_env)
6465
self.mock_version_info.stop()
66+
config_manager.clear_config()
6567

6668
async def test_dispatcher_initialize_worker(self):
6769
"""Test if the dispatcher can be initialized worker successfully

tests/unittests/test_shared_memory_manager.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
from unittest.mock import patch
1010

1111
from azure.functions import meta as bind_meta
12+
from azure_functions_worker.utils import config_manager
1213
from tests.utils import testutils
1314

1415
from azure_functions_worker.bindings.shared_memory_data_transfer import (
@@ -31,6 +32,7 @@ class TestSharedMemoryManager(testutils.SharedMemoryTestCase):
3132
Tests for SharedMemoryManager.
3233
"""
3334
def setUp(self):
35+
config_manager.clear_config()
3436
env = os.environ.copy()
3537
env['FUNCTIONS_WORKER_SHARED_MEMORY_DATA_TRANSFER_ENABLED'] = "true"
3638
self.mock_environ = patch.dict('os.environ', env)

tests/unittests/test_utilities.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@ def tearDown(self):
8787
self.mock_sys_path.stop()
8888
self.mock_sys_module.stop()
8989
self.mock_environ.stop()
90+
config_manager.clear_config()
9091

9192
def test_is_true_like_accepted(self):
9293
self.assertTrue(config_manager.is_true_like('1'))
@@ -113,15 +114,15 @@ def test_is_false_like_rejected(self):
113114
self.assertFalse(config_manager.is_false_like('secret'))
114115

115116
def test_is_envvar_true(self):
116-
config_manager.set_env_var(TEST_FEATURE_FLAG, 'true')
117+
os.environ[TEST_FEATURE_FLAG] = 'true'
117118
self.assertTrue(config_manager.is_envvar_true(TEST_FEATURE_FLAG))
118119

119120
def test_is_envvar_not_true_on_unset(self):
120121
self._unset_feature_flag()
121122
self.assertFalse(config_manager.is_envvar_true(TEST_FEATURE_FLAG))
122123

123124
def test_is_envvar_false(self):
124-
config_manager.set_env_var(TEST_FEATURE_FLAG, 'false')
125+
os.environ[TEST_FEATURE_FLAG] = 'false'
125126
self.assertTrue(config_manager.is_envvar_false(TEST_FEATURE_FLAG))
126127

127128
def test_is_envvar_not_false_on_unset(self):

tests/unittests/test_utilities_dependency.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
from unittest.mock import patch
88

99
from azure_functions_worker.utils.dependency import DependencyManager
10-
from azure_functions_worker.utils.config_manager import read_config
10+
from azure_functions_worker.utils.config_manager import clear_config
1111
from tests.utils import testutils
1212

1313

@@ -38,7 +38,7 @@ def setUp(self):
3838
self._patch_sys_path.start()
3939
self._patch_importer_cache.start()
4040
self._patch_modules.start()
41-
read_config("")
41+
clear_config()
4242

4343
def tearDown(self):
4444
self._patch_environ.stop()

0 commit comments

Comments
 (0)