Merge pull request #1570 from jdemaeyer/tests/complete-settings-tests

[MRG+1] Add some missing tests for scrapy.settings
This commit is contained in:
Julia Medina 2015-10-30 12:36:25 -03:00
commit 9424ca0fdb
1 changed files with 26 additions and 6 deletions

View File

@ -3,11 +3,20 @@ import unittest
import warnings
from scrapy.settings import (BaseSettings, Settings, SettingsAttribute,
CrawlerSettings)
CrawlerSettings, SETTINGS_PRIORITIES,
get_settings_priority)
from tests import mock
from . import default_settings
class SettingsGlobalFuncsTest(unittest.TestCase):
def test_get_settings_priority(self):
for prio_str, prio_num in six.iteritems(SETTINGS_PRIORITIES):
self.assertEqual(get_settings_priority(prio_str), prio_num)
self.assertEqual(get_settings_priority(99), 99)
class SettingsAttributeTest(unittest.TestCase):
def setUp(self):
@ -30,8 +39,7 @@ class SettingsAttributeTest(unittest.TestCase):
def test_set_per_key_priorities(self):
attribute = SettingsAttribute(
BaseSettings({'one': 10, 'two': 20}, 0),
0)
BaseSettings({'one': 10, 'two': 20}, 0), 0)
new_dict = {'one': 11, 'two': 21}
attribute.set(new_dict, 10)
@ -45,6 +53,10 @@ class SettingsAttributeTest(unittest.TestCase):
self.assertEqual(attribute.value['one'], 12)
self.assertEqual(attribute.value['two'], 21)
def test_repr(self):
self.assertEqual(repr(self.attribute),
"<SettingsAttribute value='value' priority=10>")
class BaseSettingsTest(unittest.TestCase):
@ -64,7 +76,7 @@ class BaseSettingsTest(unittest.TestCase):
self.assertEqual(attr.priority, 0)
def test_set_settingsattribute(self):
myattr = SettingsAttribute(0, 30) # Note priority 30
myattr = SettingsAttribute(0, 30) # Note priority 30
self.settings.set('TEST_ATTR', myattr, 10)
self.assertEqual(self.settings.get('TEST_ATTR'), 0)
self.assertEqual(self.settings.getpriority('TEST_ATTR'), 30)
@ -152,7 +164,8 @@ class BaseSettingsTest(unittest.TestCase):
def test_update(self):
settings = BaseSettings({'key_lowprio': 0}, priority=0)
settings.set('key_highprio', 10, priority=50)
custom_settings = BaseSettings({'key_lowprio': 1, 'key_highprio': 11}, priority=30)
custom_settings = BaseSettings({'key_lowprio': 1, 'key_highprio': 11},
priority=30)
custom_settings.set('newkey_one', None, priority=50)
custom_dict = {'key_lowprio': 2, 'key_highprio': 12, 'newkey_two': None}
@ -329,7 +342,6 @@ class BaseSettingsTest(unittest.TestCase):
self.assertEqual(self.settings.get('FOO'), 'fez')
self.assertEqual(self.settings.overrides.get('FOO'), 'fez')
def test_deprecated_attribute_defaults(self):
self.settings.set('BAR', 'fuz', priority='default')
with warnings.catch_warnings(record=True) as w:
@ -339,6 +351,14 @@ class BaseSettingsTest(unittest.TestCase):
self.assertEqual(self.settings.defaults.get('BAR'), 'foo')
self.assertIn('BAR', self.settings.defaults)
def test_repr(self):
settings = BaseSettings()
self.assertEqual(repr(settings), "<BaseSettings {}>")
attr = SettingsAttribute('testval', 15)
settings['testkey'] = attr
self.assertEqual(repr(settings),
"<BaseSettings {'testkey': %s}>" % repr(attr))
class SettingsTest(unittest.TestCase):