From b57de42b3d0269b384eb5b1edb55fc7f6a3c3bb4 Mon Sep 17 00:00:00 2001 From: Robert Weidlich Date: Thu, 15 Nov 2012 14:47:18 +0100 Subject: [PATCH 1/3] Added new test case for multiple inheritance --- .../tests/settings/multiple_inheritance2.py | 27 +++++++++++++++++++ configurations/tests/test_inheritance.py | 13 +++++++++ 2 files changed, 40 insertions(+) create mode 100644 configurations/tests/settings/multiple_inheritance2.py diff --git a/configurations/tests/settings/multiple_inheritance2.py b/configurations/tests/settings/multiple_inheritance2.py new file mode 100644 index 0000000..1f26235 --- /dev/null +++ b/configurations/tests/settings/multiple_inheritance2.py @@ -0,0 +1,27 @@ + +from configurations import Settings + +class BaseSettings(Settings): + def TEMPLATE_CONTEXT_PROCESSORS(self): + return super(BaseSettings, self).TEMPLATE_CONTEXT_PROCESSORS + +class Klass1(BaseSettings): + def TEMPLATE_CONTEXT_PROCESSORS(self): + return super(Klass1, self).TEMPLATE_CONTEXT_PROCESSORS() + ( + 'configurations.tests.settings.base.test_callback1',) + +class Klass2(BaseSettings): + def TEMPLATE_CONTEXT_PROCESSORS(self): + return super(Klass2, self).TEMPLATE_CONTEXT_PROCESSORS() + ( + 'configurations.tests.settings.base.test_callback2',) + +class Klass3(BaseSettings): + def TEMPLATE_CONTEXT_PROCESSORS(self): + return super(Klass3, self).TEMPLATE_CONTEXT_PROCESSORS() + ( + 'configurations.tests.settings.base.test_callback3',) + +class MInheritance(Klass1, Klass2, Klass3): + + def TEMPLATE_CONTEXT_PROCESSORS(self): + return super(MInheritance, self).TEMPLATE_CONTEXT_PROCESSORS() + ( + 'configurations.tests.settings.base.test_callback_m',) diff --git a/configurations/tests/test_inheritance.py b/configurations/tests/test_inheritance.py index 8b202d4..341874d 100644 --- a/configurations/tests/test_inheritance.py +++ b/configurations/tests/test_inheritance.py @@ -28,3 +28,16 @@ class InheritanceTests(TestCase): 'configurations.tests.settings.base.test_callback', 'configurations.tests.settings.base.test_callback', )) + + @patch.dict(os.environ, clear=True, + DJANGO_CONFIGURATION='MInheritance', + DJANGO_SETTINGS_MODULE='configurations.tests.settings.multiple_inheritance2') + def test_inherited3(self): + from configurations.tests.settings import multiple_inheritance2 + self.assertEquals(multiple_inheritance2.TEMPLATE_CONTEXT_PROCESSORS, + global_settings.TEMPLATE_CONTEXT_PROCESSORS + ( + 'configurations.tests.settings.base.test_callback3', + 'configurations.tests.settings.base.test_callback2', + 'configurations.tests.settings.base.test_callback1', + 'configurations.tests.settings.base.test_callback_m', + )) From 9e9f922853bae649b85b583e6c4993ab8e27a35c Mon Sep 17 00:00:00 2001 From: Robert Weidlich Date: Thu, 15 Nov 2012 14:58:58 +0100 Subject: [PATCH 2/3] pep8 fixes --- configurations/tests/settings/multiple_inheritance2.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/configurations/tests/settings/multiple_inheritance2.py b/configurations/tests/settings/multiple_inheritance2.py index 1f26235..254d012 100644 --- a/configurations/tests/settings/multiple_inheritance2.py +++ b/configurations/tests/settings/multiple_inheritance2.py @@ -1,27 +1,31 @@ from configurations import Settings + class BaseSettings(Settings): def TEMPLATE_CONTEXT_PROCESSORS(self): return super(BaseSettings, self).TEMPLATE_CONTEXT_PROCESSORS + class Klass1(BaseSettings): def TEMPLATE_CONTEXT_PROCESSORS(self): return super(Klass1, self).TEMPLATE_CONTEXT_PROCESSORS() + ( 'configurations.tests.settings.base.test_callback1',) + class Klass2(BaseSettings): def TEMPLATE_CONTEXT_PROCESSORS(self): return super(Klass2, self).TEMPLATE_CONTEXT_PROCESSORS() + ( 'configurations.tests.settings.base.test_callback2',) + class Klass3(BaseSettings): def TEMPLATE_CONTEXT_PROCESSORS(self): return super(Klass3, self).TEMPLATE_CONTEXT_PROCESSORS() + ( 'configurations.tests.settings.base.test_callback3',) -class MInheritance(Klass1, Klass2, Klass3): +class MInheritance(Klass1, Klass2, Klass3): def TEMPLATE_CONTEXT_PROCESSORS(self): return super(MInheritance, self).TEMPLATE_CONTEXT_PROCESSORS() + ( 'configurations.tests.settings.base.test_callback_m',) From 1bf2326f2ebfb1e969f1094ae8a09c017f523417 Mon Sep 17 00:00:00 2001 From: Robert Weidlich Date: Thu, 15 Nov 2012 17:01:09 +0100 Subject: [PATCH 3/3] Changed test to match real application => failure --- configurations/tests/settings/multiple_inheritance2.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/configurations/tests/settings/multiple_inheritance2.py b/configurations/tests/settings/multiple_inheritance2.py index 254d012..0401067 100644 --- a/configurations/tests/settings/multiple_inheritance2.py +++ b/configurations/tests/settings/multiple_inheritance2.py @@ -25,7 +25,11 @@ class Klass3(BaseSettings): 'configurations.tests.settings.base.test_callback3',) -class MInheritance(Klass1, Klass2, Klass3): +class Klass4(BaseSettings): + pass + + +class MInheritance(Klass1, Klass4, Klass2, Klass3): def TEMPLATE_CONTEXT_PROCESSORS(self): return super(MInheritance, self).TEMPLATE_CONTEXT_PROCESSORS() + ( 'configurations.tests.settings.base.test_callback_m',)