在导入模块之前模拟全局变量?



我正在尝试对使用环境变量创建一些全局对象的 aws lambda 函数进行单元测试。当我尝试将 lambda 的本地副本导入到我的单元测试文件中时,我会收到"LOG_LEVEL"的关键错误。

import boto3
import logging
import os
log_level = os.environ['LOG_LEVEL']
logger = logging.getLogger()
logger.setLevel(eval(log_level))

def handler(event, context):
...some code...

在我的测试文件中:

import unittest
from myModule import *
from moto import mock_dynamodb2, mock_s3
from botocore.exceptions import ClientError

在导入测试文件之前,我是否可以模拟 os.environ 值?

您可以在测试函数中设置环境变量

def test_log_level():
os.environ['LOG_LEVEL'] = 'DEBUG'
...

最新更新