Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ any parts of the framework not mentioned in the documentation should generally b
* Fixed invalid relationship pointer in error objects when field naming formatting is used.
* Properly resolved related resource type when nested source field is defined.

### Added

* Added support for Django 4.1.

### Removed

* Removed support for Django 2.2.
Expand Down
2 changes: 1 addition & 1 deletion README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ Requirements
------------

1. Python (3.7, 3.8, 3.9, 3.10)
2. Django (3.2, 4.0)
2. Django (3.2, 4.0, 4.1)
3. Django REST framework (3.12, 3.13)

We **highly** recommend and only officially support the latest patch release of each Python, Django and REST framework series.
Expand Down
2 changes: 1 addition & 1 deletion docs/getting-started.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ like the following:
## Requirements

1. Python (3.7, 3.8, 3.9, 3.10)
2. Django (3.2, 4.0)
2. Django (3.2, 4.0, 4.1)
3. Django REST framework (3.12, 3.13)

We **highly** recommend and only officially support the latest patch release of each Python, Django and REST framework series.
Expand Down
12 changes: 6 additions & 6 deletions example/tests/unit/test_default_drf_serializers.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,26 +44,26 @@ class DummyTestViewSet(viewsets.ModelViewSet):
serializer_class = DummyTestSerializer


def render_dummy_test_serialized_view(view_class):
serializer = DummyTestSerializer(instance=Entry())
def render_dummy_test_serialized_view(view_class, entry):
serializer = DummyTestSerializer(instance=entry)
renderer = JSONRenderer()
return renderer.render(serializer.data, renderer_context={"view": view_class()})


# tests
def test_simple_reverse_relation_included_renderer():
def test_simple_reverse_relation_included_renderer(db, entry):
"""
Test renderer when a single reverse fk relation is passed.
"""
rendered = render_dummy_test_serialized_view(DummyTestViewSet)
rendered = render_dummy_test_serialized_view(DummyTestViewSet, entry)

assert rendered


def test_render_format_field_names(settings):
def test_render_format_field_names(db, settings, entry):
"""Test that json field is kept untouched."""
settings.JSON_API_FORMAT_FIELD_NAMES = "dasherize"
rendered = render_dummy_test_serialized_view(DummyTestViewSet)
rendered = render_dummy_test_serialized_view(DummyTestViewSet, entry)

result = json.loads(rendered.decode())
assert result["data"]["attributes"]["json-field"] == {"JsonKey": "JsonValue"}
Expand Down
12 changes: 6 additions & 6 deletions example/tests/unit/test_renderers.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,25 +88,25 @@ def render_dummy_test_serialized_view(view_class, instance):
return renderer.render(serializer.data, renderer_context={"view": view_class()})


def test_simple_reverse_relation_included_renderer():
def test_simple_reverse_relation_included_renderer(db, entry):
"""
Test renderer when a single reverse fk relation is passed.
"""
rendered = render_dummy_test_serialized_view(DummyTestViewSet, Entry())
rendered = render_dummy_test_serialized_view(DummyTestViewSet, entry)

assert rendered


def test_simple_reverse_relation_included_read_only_viewset():
rendered = render_dummy_test_serialized_view(ReadOnlyDummyTestViewSet, Entry())
def test_simple_reverse_relation_included_read_only_viewset(db, entry):
rendered = render_dummy_test_serialized_view(ReadOnlyDummyTestViewSet, entry)

assert rendered


def test_render_format_field_names(settings):
def test_render_format_field_names(db, entry, settings):
"""Test that json field is kept untouched."""
settings.JSON_API_FORMAT_FIELD_NAMES = "dasherize"
rendered = render_dummy_test_serialized_view(DummyTestViewSet, Entry())
rendered = render_dummy_test_serialized_view(DummyTestViewSet, entry)

result = json.loads(rendered.decode())
assert result["data"]["attributes"]["json-field"] == {"JsonKey": "JsonValue"}
Expand Down
2 changes: 2 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@ DJANGO_SETTINGS_MODULE=example.settings.test
filterwarnings =
error::DeprecationWarning
error::PendingDeprecationWarning
# Remove when DRF is not depending on it anymore
ignore:The django.utils.timezone.utc alias is deprecated.
testpaths =
example
tests
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ def get_package_data(package):
install_requires=[
"inflection>=0.5.0",
"djangorestframework>=3.12,<3.14",
"django>=3.2,<4.1",
"django>=3.2,<4.2",
],
extras_require={
"django-polymorphic": ["django-polymorphic>=3.0"],
Expand Down
7 changes: 4 additions & 3 deletions tox.ini
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
[tox]
envlist =
py{37,38,39,310}-django32-drf{312,313,master},
py{38,39,310}-django40-drf{313,master},
py{38,39,310}-django{40,41}-drf{313,master},
lint,docs

[testenv]
deps =
django32: Django>=3.2,<3.3
django40: Django>=4.0,<5.0
django40: Django>=4.0,<4.1
django41: Django>=4.1,<4.2
drf312: djangorestframework>=3.12,<3.13
drf313: djangorestframework>=3.13,<3.14
drfmaster: https://github.com/encode/django-rest-framework/archive/master.zip
Expand Down Expand Up @@ -44,5 +45,5 @@ deps =
commands =
sphinx-build -W -b html -d docs/_build/doctrees docs docs/_build/html

[testenv:py{37,38,39,310}-django{32,40}-drfmaster]
[testenv:py{37,38,39,310}-django{32,40,41}-drfmaster]
ignore_outcome = true