From b7f42a3ff4bc2258005cbea7a652c48d12502265 Mon Sep 17 00:00:00 2001 From: Roman Mogilatov Date: Wed, 25 Nov 2015 13:25:40 +0200 Subject: [PATCH] Make Provider.last_overriding None by default --- dependency_injector/providers.py | 9 +++------ tests/test_providers.py | 16 ++-------------- 2 files changed, 5 insertions(+), 20 deletions(-) diff --git a/dependency_injector/providers.py b/dependency_injector/providers.py index aba44816..c4d5acf0 100644 --- a/dependency_injector/providers.py +++ b/dependency_injector/providers.py @@ -76,12 +76,9 @@ class Provider(object): def last_overriding(self): """Read-only reference to the last overriding provider, if any. - :type: :py:class:`Provider` + :type: :py:class:`Provider` | None """ - try: - return self.overridden_by[-1] - except (TypeError, IndexError): - raise Error('Provider {0} is not overridden'.format(str(self))) + return self.overridden_by[-1] if self.overridden_by else None def override(self, provider): """Override provider with another provider. @@ -104,7 +101,7 @@ class Provider(object): :rtype: None """ - if not self.is_overridden: + if not self.overridden_by: raise Error('Provider {0} is not overridden'.format(str(self))) self.overridden_by = self.overridden_by[:-1] diff --git a/tests/test_providers.py b/tests/test_providers.py index 7643c440..e91eb5f0 100644 --- a/tests/test_providers.py +++ b/tests/test_providers.py @@ -90,13 +90,7 @@ class ProviderTests(unittest.TestCase): def test_last_overriding_of_not_overridden_provider(self): """Test getting last overriding from not overridden provider.""" - try: - self.provider.last_overriding - except errors.Error: - pass - else: - self.fail('Got en error in {}'.format( - str(self.test_last_overriding_of_not_overridden_provider))) + self.assertIsNone(self.provider.last_overriding) def test_reset_last_overriding(self): """Test reseting of last overriding provider.""" @@ -129,13 +123,7 @@ class ProviderTests(unittest.TestCase): self.provider.reset_override() self.assertFalse(self.provider.is_overridden) - try: - self.provider.last_overriding - except errors.Error: - pass - else: - self.fail('Got en error in {}'.format( - str(self.test_last_overriding_of_not_overridden_provider))) + self.assertIsNone(self.provider.last_overriding) class DelegateTests(unittest.TestCase):