blob: ec9034e2aa7607c48f7f8cb897f71521a26a1718 [file] [log] [blame]
#!/usr/bin/env python3
#
# Copyright 2020 The Cobalt Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
"""Tests the log_level module."""
import argparse
import logging
import unittest
try:
from unittest import mock
except ImportError:
import mock
from starboard.tools import log_level
_INITIALIZE_LOGGING_MOCK = 'starboard.tools.log_level.InitializeLoggingWithLevel' # pylint:disable=line-too-long
class LogLevelTest(unittest.TestCase):
@mock.patch(_INITIALIZE_LOGGING_MOCK)
def testRainyDayNoArgs(self, initialize_logging_mock):
log_level.InitializeLogging(None)
initialize_logging_mock.assert_called_with(logging.INFO)
@mock.patch(_INITIALIZE_LOGGING_MOCK)
def testRainyDayEmptyArgs(self, initialize_logging_mock):
log_level.InitializeLogging(argparse.Namespace())
initialize_logging_mock.assert_called_with(logging.INFO)
@mock.patch(_INITIALIZE_LOGGING_MOCK)
def testSunnyDayCorrectLevels(self, initialize_logging_mock):
for name, level in log_level._NAME_TO_LEVEL.items(): # pylint:disable=protected-access
args = argparse.Namespace()
args.log_level = name
log_level.InitializeLogging(args)
initialize_logging_mock.assert_called_with(level)
@mock.patch(_INITIALIZE_LOGGING_MOCK)
def testSunnyDayVerboseOverride(self, initialize_logging_mock):
args = argparse.Namespace()
args.verbose = True
log_level.InitializeLogging(args)
initialize_logging_mock.assert_called_with(logging.DEBUG)
if __name__ == '__main__':
unittest.main()