Skip to content

Commit

Permalink
Add model_class to build_field
Browse files Browse the repository at this point in the history
  • Loading branch information
shosca committed Jan 5, 2018
1 parent a30aa1f commit 7116744
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 11 deletions.
4 changes: 2 additions & 2 deletions rest_witchcraft/serializers.py
Expand Up @@ -324,7 +324,7 @@ def get_fields(self):

source = self._extra_kwargs.get(field_name, {}).get('source') or field_name

_fields[field_name] = self.build_field(source, info, depth)
_fields[field_name] = self.build_field(source, info, self.model, depth)

return _fields

Expand Down Expand Up @@ -424,7 +424,7 @@ def get_extra_kwargs(self):

return extra_kwargs

def build_field(self, field_name, info, nested_depth):
def build_field(self, field_name, info, model_class, nested_depth):
"""
Return a field or a nested serializer for the field name
"""
Expand Down
18 changes: 9 additions & 9 deletions tests/test_serializers.py
Expand Up @@ -351,7 +351,7 @@ class Meta:

serializer = VehicleSerializer()
info = model_info(Vehicle)
field = serializer.build_field(Vehicle.id.key, info, 0)
field = serializer.build_field(Vehicle.id.key, info, Vehicle, 0)

self.assertEqual(field.help_text, Vehicle.id.doc)
self.assertEqual(field.label, 'Id')
Expand All @@ -370,7 +370,7 @@ class Meta:

serializer = VehicleSerializer()
info = model_info(Vehicle)
field = serializer.build_field(Vehicle.name.key, info, 0)
field = serializer.build_field(Vehicle.name.key, info, Vehicle, 0)

self.assertEqual(field.help_text, Vehicle.name.doc)
self.assertEqual(field.label, 'Name')
Expand All @@ -389,7 +389,7 @@ class Meta:

serializer = VehicleSerializer()
info = model_info(Vehicle)
field = serializer.build_field(Vehicle.type.key, info, 0)
field = serializer.build_field(Vehicle.type.key, info, Vehicle, 0)

self.assertEqual(field.help_text, Vehicle.type.doc)
self.assertEqual(field.label, 'Type')
Expand All @@ -408,7 +408,7 @@ class Meta:

serializer = VehicleSerializer()
info = model_info(Vehicle)
field = serializer.build_field(Vehicle.paint.key, info, 0)
field = serializer.build_field(Vehicle.paint.key, info, Vehicle, 0)

self.assertEqual(field.help_text, Vehicle.paint.doc)
self.assertEqual(field.label, 'Paint')
Expand Down Expand Up @@ -446,7 +446,7 @@ class Meta:

serializer = VehicleSerializer()
info = model_info(Vehicle)
field = serializer.build_field(Vehicle.engine.key, info, 0)
field = serializer.build_field(Vehicle.engine.key, info, Vehicle, 0)

self.assertIsInstance(field, CompositeSerializer)
self.assertEqual(len(field.fields), 4)
Expand Down Expand Up @@ -475,7 +475,7 @@ class Meta:

serializer = VehicleSerializer()
info = model_info(Vehicle)
field = serializer.build_field('lower_name', info, 0)
field = serializer.build_field('lower_name', info, Vehicle, 0)

self.assertIsInstance(field, fields.ReadOnlyField)

Expand All @@ -492,7 +492,7 @@ class Meta:
info = model_info(Vehicle)

with self.assertRaises(ImproperlyConfigured):
serializer.build_field('abcde', info, 0)
serializer.build_field('abcde', info, Vehicle, 0)

def test_build_one_to_many_relationship_field(self):

Expand All @@ -505,7 +505,7 @@ class Meta:

serializer = VehicleSerializer()
info = model_info(Vehicle)
nested_serializer = serializer.build_field(Vehicle.owner.key, info, 0)
nested_serializer = serializer.build_field(Vehicle.owner.key, info, Vehicle, 0)

self.assertIsNotNone(nested_serializer)
self.assertIsInstance(nested_serializer, ModelSerializer)
Expand All @@ -523,7 +523,7 @@ class Meta:

serializer = VehicleSerializer()
info = model_info(Vehicle)
nested_serializer = serializer.build_field(Vehicle.owner.key, info, 0)
nested_serializer = serializer.build_field(Vehicle.owner.key, info, Vehicle, 0)

self.assertIsNotNone(nested_serializer)
self.assertIsInstance(nested_serializer, ModelSerializer)
Expand Down

0 comments on commit 7116744

Please sign in to comment.