def test_extract_attributes():
    fields = {
        'id': serializers.Field(),
        'username': serializers.Field(),
        'deleted': serializers.ReadOnlyField(),
    }
    resource = {'id': 1, 'deleted': None, 'username': '******'}
    expected = {
        'username': '******',
        'deleted': None
    }
    assert sorted(JSONRenderer.extract_attributes(fields, resource)) == sorted(expected), 'Regular fields should be extracted'
    assert sorted(JSONRenderer.extract_attributes(fields, {})) == sorted(
        {'username': ''}), 'Should not extract read_only fields on empty serializer'
def test_extract_attributes():
    fields = {
        'id': serializers.Field(),
        'username': serializers.Field(),
        'deleted': serializers.ReadOnlyField(),
    }
    resource = {'id': 1, 'deleted': None, 'username': '******'}
    expected = {'username': '******', 'deleted': None}
    assert sorted(JSONRenderer.extract_attributes(
        fields,
        resource)) == sorted(expected), 'Regular fields should be extracted'
    assert sorted(JSONRenderer.extract_attributes(fields, {})) == sorted(
        {'username':
         ''}), 'Should not extract read_only fields on empty serializer'
Beispiel #3
0
def test_extract_attributes():
    fields = {
        "id": serializers.Field(),
        "username": serializers.Field(),
        "deleted": serializers.ReadOnlyField(),
    }
    resource = {"id": 1, "deleted": None, "username": "******"}
    expected = {"username": "******", "deleted": None}
    assert sorted(JSONRenderer.extract_attributes(
        fields,
        resource)) == sorted(expected), "Regular fields should be extracted"
    assert sorted(JSONRenderer.extract_attributes(fields, {})) == sorted(
        {"username":
         ""}), "Should not extract read_only fields on empty serializer"
 def build_json_resource_obj(fields, resource, resource_instance,
                             resource_name):
     resource_data = [
         ('type', resource_name),
         ('id', encoding.force_text(resource_instance.pk)
          if resource_instance else None),
         ('attributes', JSONRenderer.extract_attributes(fields, resource)),
     ]
     # Use CustomJSONRenderer.extract_relationships, which removes embedded data
     relationships = CustomJSONRenderer.extract_relationships(
         fields, resource, resource_instance)
     if relationships:
         resource_data.append(('relationships', relationships))
     # Add 'self' link if field is present and valid
     if api_settings.URL_FIELD_NAME in resource and \
             isinstance(fields[api_settings.URL_FIELD_NAME], relations.RelatedField):
         resource_data.append(('links', {
             'self': resource[api_settings.URL_FIELD_NAME]
         }))
     return OrderedDict(resource_data)