64 lines
1.5 KiB
Python
64 lines
1.5 KiB
Python
import logging
|
|
from os import environ
|
|
from unittest.mock import patch
|
|
|
|
import pytest
|
|
|
|
from bonobo import settings
|
|
|
|
TEST_SETTING = 'TEST_SETTING'
|
|
|
|
|
|
def test_to_bool():
|
|
assert not settings.to_bool('')
|
|
assert not settings.to_bool('FALSE')
|
|
assert not settings.to_bool('NO')
|
|
assert not settings.to_bool('0')
|
|
|
|
assert settings.to_bool('yup')
|
|
assert settings.to_bool('True')
|
|
assert settings.to_bool('yes')
|
|
assert settings.to_bool('1')
|
|
|
|
|
|
def test_setting():
|
|
s = settings.Setting(TEST_SETTING)
|
|
assert s.get() is None
|
|
|
|
with patch.dict(environ, {TEST_SETTING: 'hello'}):
|
|
assert s.get() is None
|
|
s.clear()
|
|
assert s.get() == 'hello'
|
|
|
|
s = settings.Setting(TEST_SETTING, default='nope')
|
|
assert s.get() is 'nope'
|
|
|
|
with patch.dict(environ, {TEST_SETTING: 'hello'}):
|
|
assert s.get() == 'nope'
|
|
s.clear()
|
|
assert s.get() == 'hello'
|
|
|
|
|
|
def test_default_settings():
|
|
settings.clear_all()
|
|
|
|
assert settings.DEBUG.get() == False
|
|
assert settings.PROFILE.get() == False
|
|
assert settings.QUIET.get() == False
|
|
assert settings.LOGGING_LEVEL.get() == logging._checkLevel('INFO')
|
|
|
|
with patch.dict(environ, {'DEBUG': 't'}):
|
|
settings.clear_all()
|
|
assert settings.LOGGING_LEVEL.get() == logging._checkLevel('DEBUG')
|
|
|
|
settings.clear_all()
|
|
|
|
|
|
def test_check():
|
|
settings.check()
|
|
with patch.dict(environ, {'DEBUG': 't', 'PROFILE': 't', 'QUIET': 't'}):
|
|
settings.clear_all()
|
|
with pytest.raises(RuntimeError):
|
|
settings.check()
|
|
settings.clear_all()
|