forked from django-json-api/django-rest-framework-json-api
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_relations.py
46 lines (37 loc) · 1.17 KB
/
test_relations.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import pytest
from rest_framework_json_api.relations import HyperlinkedRelatedField
from .models import BasicModel
@pytest.mark.urls("tests.urls")
@pytest.mark.parametrize(
"format_links,expected_url_segment",
[
(None, "relatedField_name"),
("dasherize", "related-field-name"),
("camelize", "relatedFieldName"),
("capitalize", "RelatedFieldName"),
("underscore", "related_field_name"),
],
)
def test_relationship_urls_respect_format_links(
settings, format_links, expected_url_segment
):
settings.JSON_API_FORMAT_LINKS = format_links
model = BasicModel(text="Some text")
field = HyperlinkedRelatedField(
self_link_view_name="basic-model-relationships",
related_link_view_name="basic-model-related",
read_only=True,
)
field.field_name = "relatedField_name"
expected = {
"self": "/basic_models/{}/relationships/{}/".format(
model.pk,
expected_url_segment,
),
"related": "/basic_models/{}/{}/".format(
model.pk,
expected_url_segment,
),
}
actual = field.get_links(model)
assert expected == actual