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

时间:2019-12-23 18:24:57

标签: python-3.x amazon-web-services mocking python-unittest

我正在尝试对使用环境变量创建一些全局对象的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值?

1 个答案:

答案 0 :(得分:0)

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

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