from __future__ import absolute_import
from collections import Mapping, MutableMapping
from celery.app.utils import Settings, filter_hidden_settings, bugreport
from celery.tests.case import AppCase, Mock
class TestSettings(AppCase):
"""
Tests of celery.app.utils.Settings
"""
def test_is_mapping(self):
"""Settings should be a collections.Mapping"""
self.assertTrue(issubclass(Settings, Mapping))
def test_is_mutable_mapping(self):
"""Settings should be a collections.MutableMapping"""
self.assertTrue(issubclass(Settings, MutableMapping))
class test_filter_hidden_settings(AppCase):
def test_handles_non_string_keys(self):
"""filter_hidden_settings shouldn't raise an exception when handling
mappings with non-string keys"""
conf = {
'STRING_KEY': 'VALUE1',
('NON', 'STRING', 'KEY'): 'VALUE2',
'STRING_KEY2': {
'STRING_KEY3': 1,
('NON', 'STRING', 'KEY', '2'): 2
},
}
filter_hidden_settings(conf)
class test_bugreport(AppCase):
def test_no_conn_driver_info(self):
self.app.connection = Mock()
conn = self.app.connection.return_value = Mock()
conn.transport = None
bugreport(self.app)