Skip to content

Commit

Permalink
Unittests for testing None and merge in FieldsetsConfig inheritance
Browse files Browse the repository at this point in the history
  • Loading branch information
yohanboniface committed Mar 17, 2012
1 parent edcd7e9 commit bc429d7
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions admin_tabs/tests/metaadminpageconfig.py
Original file line number Diff line number Diff line change
Expand Up @@ -284,3 +284,49 @@ class FieldsetsConfig:
self.assertEqual(ABC.FieldsetsConfig.b_fieldset["name"], "b_fieldset")
self.assertEqual(ABC.FieldsetsConfig.c_fieldset["name"], "c_fieldset")
self.failIf(hasattr(ABC.FieldsetsConfig, "d_fieldset"))

def test_none_should_remove_inherited_tab(self):
"""
When a class inherit from another, it could remove some fieldset
attribute in setting it with None value.
"""

class A(TabbedPageConfig):

class FieldsetsConfig:
a_fieldset = Config(name='a_fieldset')
none_fieldset = Config(name='none_fieldset')

class AB(A):

class FieldsetsConfig:
b_fieldset = Config(name="b_fieldset")
none_fieldset = None

# A must have all its attribute
self.failUnless(hasattr(A.FieldsetsConfig, "a_fieldset"))
self.failUnless(hasattr(A.FieldsetsConfig, "none_fieldset"))

# AB must have its attribute and A's one, but not the None overidden
self.failUnless(hasattr(AB.FieldsetsConfig, "b_fieldset"))
self.failUnless(hasattr(AB.FieldsetsConfig, "a_fieldset"))
self.failIf(hasattr(AB.FieldsetsConfig, "none_fieldset"))

def test_should_merge_non_overriden_attributes(self):
"""
When inheriting from a parent, you can set only the attributes of a
fieldset that you want to ovverride.
"""
class A(TabbedPageConfig):

class FieldsetsConfig:
fieldset = Config(name="myname", fields=["a", "b", "c"])

class AB(A):

class FieldsetsConfig:
fieldset = Config(fields=["b", "c", "a"])

self.assertEqual(A.FieldsetsConfig.fieldset["fields"], ["a", "b", "c"])
self.assertEqual(AB.FieldsetsConfig.fieldset["fields"], ["b", "c", "a"])
self.assertEqual(AB.FieldsetsConfig.fieldset["name"], "myname")

0 comments on commit bc429d7

Please sign in to comment.