Commit 465c85b0 by Calen Pennington

Make model classes inherit their parents fields attribute

parent 0bed1964
......@@ -121,7 +121,12 @@ class ModelMetaclass(type):
v._name = n
fields.append(v)
fields.sort()
attrs['fields'] = fields
attrs['fields'] = sum([
base.fields
for base
in bases
if hasattr(base, 'fields')
], fields)
return super(ModelMetaclass, cls).__new__(cls, name, bases, attrs)
......
......@@ -15,12 +15,21 @@ def test_model_metaclass():
def __init__(self, model_data):
self._model_data = model_data
class ChildClass(ModelMetaclassTester):
pass
assert hasattr(ModelMetaclassTester, 'field_a')
assert hasattr(ModelMetaclassTester, 'field_b')
assert_in(ModelMetaclassTester.field_a, ModelMetaclassTester.fields)
assert_in(ModelMetaclassTester.field_b, ModelMetaclassTester.fields)
assert hasattr(ChildClass, 'field_a')
assert hasattr(ChildClass, 'field_b')
assert_in(ChildClass.field_a, ChildClass.fields)
assert_in(ChildClass.field_b, ChildClass.fields)
def test_parent_metaclass():
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment