From b6196309cb654e6662197e19de36a9d18a83f12f Mon Sep 17 00:00:00 2001 From: Laerte Pereira <5853172+Laerte@users.noreply.github.com> Date: Wed, 28 Jun 2023 03:28:49 -0300 Subject: [PATCH] fix: Return value instead of `SettingsAttribute` object when using `pop` method (#5963) --- scrapy/settings/__init__.py | 4 ++-- tests/test_settings/__init__.py | 10 +++------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/scrapy/settings/__init__.py b/scrapy/settings/__init__.py index 8b3bdbabe..cc44d67e8 100644 --- a/scrapy/settings/__init__.py +++ b/scrapy/settings/__init__.py @@ -449,12 +449,12 @@ class BaseSettings(MutableMapping): def pop(self, name, default=__default): try: - value = self.attributes[name] + value = self.attributes[name].value except KeyError: if default is self.__default: raise - return SettingsAttribute(default, get_settings_priority("project")) + return default else: self.__delitem__(name) return value diff --git a/tests/test_settings/__init__.py b/tests/test_settings/__init__.py index bb6dc67fa..5fc825393 100644 --- a/tests/test_settings/__init__.py +++ b/tests/test_settings/__init__.py @@ -457,19 +457,15 @@ class SettingsTest(unittest.TestCase): with self.assertRaises(KeyError): settings.pop("DUMMY_CONFIG") - dummy_config = settings.pop("DUMMY_CONFIG", "dummy_value") - - self.assertEqual( - repr(dummy_config), "" - ) - self.assertEqual(dummy_config.value, "dummy_value") + dummy_config_value = settings.pop("DUMMY_CONFIG", "dummy_value") + self.assertEqual(dummy_config_value, "dummy_value") def test_pop_item_with_immutable_settings(self): settings = Settings( {"DUMMY_CONFIG": "dummy_value", "OTHER_DUMMY_CONFIG": "other_dummy_value"} ) - self.assertEqual(settings.pop("DUMMY_CONFIG").value, "dummy_value") + self.assertEqual(settings.pop("DUMMY_CONFIG"), "dummy_value") settings.freeze()