本文整理汇总了Python中tests.utils.dump_json函数的典型用法代码示例。如果您正苦于以下问题:Python dump_json函数的具体用法?Python dump_json怎么用?Python dump_json使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了dump_json函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_invalid_reverse_relation
def test_invalid_reverse_relation(client):
author = models.Person.objects.create(name="The Author")
assert not models.Comment.objects.exists()
data = dump_json({
"posts": {
"title": "This is the title",
"author": "http://testserver/people/%d/" % author.pk,
"comments": ["http://testserver/comments/1/"]
}
})
response = client.post(
reverse("post-list"), data=data,
content_type="application/vnd.api+json")
assert response.status_code == 400, response.content
assert response['content-type'] == 'application/vnd.api+json'
results = {
"errors": [{
"status": "400",
"path": "/comments",
"detail": "Invalid hyperlink - object does not exist."
}]
}
assert response.content == dump_json(results)
开发者ID:clhamilton,项目名称:drf-json-api,代码行数:26,代码来源:test_errors.py
示例2: test_drf_non_field_validation_error
def test_drf_non_field_validation_error(rf):
'''DRF uses 'non_field_errors' as the key for non-field errors'''
class LazyPersonSerializer(PersonSerializer):
def validate(self, attr):
raise ValidationError("Feeling lazy. Try again later.")
class LazyPersonViewSet(PersonViewSet):
serializer_class = LazyPersonSerializer
data = dump_json({"people": {"name": "Jason Api"}})
request = rf.post(
reverse("person-list"), data=data,
content_type="application/vnd.api+json")
view = LazyPersonViewSet.as_view({'post': 'create'})
response = view(request)
response.render()
assert response.status_code == 400, response.content
assert not models.Person.objects.exists()
results = {
"errors": [{
"status": "400",
"path": "/-",
"detail": "Feeling lazy. Try again later."
}]
}
assert response.content == dump_json(results)
开发者ID:clhamilton,项目名称:drf-json-api,代码行数:29,代码来源:test_errors.py
示例3: test_django_non_field_validation_error
def test_django_non_field_validation_error(rf, monkeypatch):
'''Django uses __all__ as the key for non-field errors
Constant is django.core.exceptions.NON_FIELD_ERRORS
'''
def clean(self):
raise ValidationError("I'm not taking any new people today")
monkeypatch.setattr(models.Person, 'clean', clean)
data = dump_json({"people": {"name": "Jason Api"}})
request = rf.post(
reverse("person-list"), data=data,
content_type="application/vnd.api+json")
view = PersonViewSet.as_view({'post': 'create'})
response = view(request)
response.render()
assert response.status_code == 400, response.content
assert not models.Person.objects.exists()
results = {
"errors": [{
"status": "400",
"path": "/-",
"detail": "I'm not taking any new people today"
}]
}
assert response.content == dump_json(results)
开发者ID:clhamilton,项目名称:drf-json-api,代码行数:29,代码来源:test_errors.py
示例4: test_update_attribute
def test_update_attribute(client):
models.Person.objects.create(name="test")
data = dump_json({
"people": {
"name": "new test",
},
})
results = {
"people": {
"id": "1",
"href": "http://testserver/people/1/",
"name": "new test",
"links": {
"favorite_post": None,
"liked_comments": [],
}
},
"links": {
"people.favorite_post": {
"href": "http://testserver/posts/{people.favorite_post}/",
"type": "posts"
},
"people.liked_comments": {
"href": "http://testserver/comments/{people.liked_comments}/",
"type": "comments"
},
}
}
response = client.put(
reverse("people-full-detail", args=[1]), data,
content_type="application/vnd.api+json")
assert response.content == dump_json(results)
开发者ID:clhamilton,项目名称:drf-json-api,代码行数:35,代码来源:test_detail.py
示例5: test_update_to_many_link
def test_update_to_many_link(client):
models.Person.objects.create(name="test")
author = models.Person.objects.create(name="author")
post = models.Post.objects.create(title="The Post", author=author)
comment1 = models.Comment.objects.create(body="Comment 1", post=post)
comment2 = models.Comment.objects.create(body="Comment 2", post=post)
data = dump_json(
{
"people": {
"name": "test",
"links": {"favorite_post": None, "liked_comments": [str(comment1.pk), str(comment2.pk)]},
}
}
)
results = {
"people": {
"id": "1",
"href": "http://testserver/people/1/",
"name": "test",
"links": {"favorite_post": None, "liked_comments": [str(comment1.pk), str(comment2.pk)]},
},
"links": {
"people.favorite_post": {"href": "http://testserver/posts/{people.favorite_post}/", "type": "posts"},
"people.liked_comments": {
"href": "http://testserver/comments/{people.liked_comments}/",
"type": "comments",
},
},
}
response = client.put(reverse("people-full-detail", args=[1]), data, content_type="application/vnd.api+json")
assert response.content == dump_json(results)
开发者ID:kevin-brown,项目名称:drf-json-api,代码行数:33,代码来源:test_detail.py
示例6: test_invalid_forward_relation
def test_invalid_forward_relation(client):
assert not models.Person.objects.exists()
data = dump_json({"posts": {"title": "This is the title", "author": "http://testserver/people/1/", "comments": []}})
response = client.post(reverse("post-list"), data=data, content_type="application/vnd.api+json")
assert response.status_code == 400, response.content
assert response["content-type"] == "application/vnd.api+json"
assert not models.Post.objects.exists()
results = {"errors": [{"status": "400", "path": "/author", "detail": does_not_exist}]}
assert response.content == dump_json(results)
开发者ID:kevin-brown,项目名称:drf-json-api,代码行数:14,代码来源:test_errors.py
示例7: test_required_field_omitted
def test_required_field_omitted(client):
data = {}
data_json_api = dump_json({"people": data})
response = client.post(reverse("person-list"), data=data_json_api, content_type="application/vnd.api+json")
assert response.status_code == 400, response.content
assert not models.Person.objects.exists()
result_data = {"name": ["This field is required."]}
assert response.data == result_data
results = {"errors": [{"path": "/name", "detail": "This field is required.", "status": "400"}]}
assert response.content == dump_json(results)
开发者ID:kevin-brown,项目名称:drf-json-api,代码行数:15,代码来源:test_errors.py
示例8: test_pagination
def test_pagination(rf):
models.Person.objects.create(name="test")
class PaginatedPersonViewSet(PersonViewSet):
paginate_by = 10
request = rf.get(
reverse("person-list"), content_type="application/vnd.api+json")
view = PaginatedPersonViewSet.as_view({'get': 'list'})
response = view(request)
response.render()
assert response.status_code == 200, response.content
results = {
"people": [
{
"id": "1",
"href": "http://testserver/people/1/",
"name": "test",
},
],
"meta": {
"pagination": {
"people": {
"count": 1,
"next": None,
"previous": None,
}
}
}
}
assert response.content == dump_json(results)
开发者ID:clhamilton,项目名称:drf-json-api,代码行数:33,代码来源:test_list.py
示例9: test_multiple_links
def test_multiple_links(client):
author = models.Person.objects.create(name="test")
post = models.Post.objects.create(author=author, title="Test post title")
models.Comment.objects.create(post=post, body="Test comment one.")
models.Comment.objects.create(post=post, body="Test comment two.")
results = {
"links": {
"posts.author": {
"href": "http://testserver/people/{posts.author}/",
"type": "people",
},
"posts.comments": {
"href": "http://testserver/comments/{posts.comments}/",
"type": "comments",
}
},
"posts": [
{
"id": "1",
"title": "Test post title",
"href": "http://testserver/posts/1/",
"links": {
"author": "1",
"comments": ["1", "2"]
}
},
],
}
response = client.get(reverse("post-list"))
assert response.content == dump_json(results)
开发者ID:clhamilton,项目名称:drf-json-api,代码行数:33,代码来源:test_links.py
示例10: test_single_links
def test_single_links(client):
author = models.Person.objects.create(name="test")
post = models.Post.objects.create(author=author, title="Test post title.")
models.Comment.objects.create(post=post, body="Some text for testing.")
results = {
"links": {
"comments.post": {
"href": "http://testserver/posts/{comments.post}/",
"type": "posts",
},
},
"comments": [
{
"id": "1",
"body": "Some text for testing.",
"href": "http://testserver/comments/1/",
"links": {
"post": "1",
}
},
],
}
response = client.get(reverse("comment-list"))
assert response.content == dump_json(results)
开发者ID:clhamilton,项目名称:drf-json-api,代码行数:27,代码来源:test_links.py
示例11: test_multiple
def test_multiple(client):
test_data = dump_json({
"people": [
{
"name": "first",
},
{
"name": "second",
},
],
})
output_data = [
{
"name": "first",
},
{
"name": "second",
},
]
response = client.generic("echo",
reverse("person-list"), data=test_data,
content_type="application/vnd.api+json",
)
assert response.data == output_data
开发者ID:clhamilton,项目名称:drf-json-api,代码行数:27,代码来源:test_parsing.py
示例12: test_object_with_optional_links
def test_object_with_optional_links(client):
models.Person.objects.create(name="test")
results = {
"people": {
"id": "1",
"href": "http://testserver/people/1/",
"name": "test",
"links": {
"favorite_post": None,
"liked_comments": [],
}
},
"links": {
"people.favorite_post": {
"href": "http://testserver/posts/{people.favorite_post}/",
"type": "posts"
},
"people.liked_comments": {
"href": "http://testserver/comments/{people.liked_comments}/",
"type": "comments"
},
}
}
response = client.get(reverse("people-full-detail", args=[1]))
assert response.content == dump_json(results)
开发者ID:clhamilton,项目名称:drf-json-api,代码行数:28,代码来源:test_detail.py
示例13: test_auth_required
def test_auth_required(rf):
class RestrictedPersonViewSet(PersonViewSet):
permission_classes = [IsAuthenticated]
data = dump_json({"people": {"name": "Jason Api"}})
request = rf.post(reverse("person-list"), data=data, content_type="application/vnd.api+json")
view = RestrictedPersonViewSet.as_view({"post": "create"})
response = view(request)
response.render()
assert response.status_code == 403, response.content
assert not models.Person.objects.exists()
results = {"errors": [{"status": "403", "title": "Authentication credentials were not provided."}]}
assert response.content == dump_json(results)
开发者ID:kevin-brown,项目名称:drf-json-api,代码行数:16,代码来源:test_errors.py
示例14: test_empty_list
def test_empty_list(client):
results = {
"posts": [],
}
response = client.get(reverse("post-list"))
assert response.content == dump_json(results)
开发者ID:canufeel,项目名称:drf-json-api,代码行数:8,代码来源:test_list.py
示例15: test_object
def test_object(client):
models.Person.objects.create(name="test")
results = {"people": {"id": "1", "href": "http://testserver/people/1/", "name": "test"}}
response = client.get(reverse("person-detail", args=[1]))
assert response.content == dump_json(results)
开发者ID:kevin-brown,项目名称:drf-json-api,代码行数:8,代码来源:test_detail.py
示例16: test_update_to_one_pk_link
def test_update_to_one_pk_link(client):
models.Person.objects.create(name="test")
author = models.Person.objects.create(name="author")
post = models.Post.objects.create(title="The Post", author=author)
data = dump_json({"people": {"name": "test", "links": {"favorite_post": str(post.pk), "liked_comments": []}}})
results = {
"people": {
"id": "1",
"href": "http://testserver/people/1/",
"name": "test",
"links": {"favorite_post": str(post.pk), "liked_comments": []},
},
"links": {"people.favorite_post": {"type": "posts"}, "people.liked_comments": {"type": "comments"}},
}
response = client.put(reverse("pk-people-full-detail", args=[1]), data, content_type="application/vnd.api+json")
assert response.content == dump_json(results)
开发者ID:kevin-brown,项目名称:drf-json-api,代码行数:18,代码来源:test_detail.py
示例17: test_options
def test_options(client):
# DRF 3.x representation
results = {
"meta": {
"actions": {
"POST": {
"author": {
"choices": [],
"label": "Author",
"read_only": False,
"required": True,
"type": "field"
},
"comments": {
"choices": [],
"label": "Comments",
"read_only": False,
"required": True,
"type": "field"
},
"id": {
"label": "ID",
"read_only": True,
"required": False,
"type": "integer"
},
"title": {
"label": "Title",
"read_only": False,
"required": True,
"type": "string"
},
"url": {
"label": "Url",
"read_only": True,
"required": False,
"type": "field"
}
}
},
"description": "",
"name": "Post List",
"parses": ["application/vnd.api+json"],
"renders": ["application/vnd.api+json"],
}
}
# DRF 2.x representation - fields labels are lowercase, no choices
ps = PostSerializer()
if hasattr(ps, 'metadata'):
results['meta']['actions']['POST'] = ps.metadata()
response = client.options(reverse("post-list"))
assert response.status_code == 200
assert response.content == dump_json(results)
开发者ID:canufeel,项目名称:drf-json-api,代码行数:56,代码来源:test_list.py
示例18: test_create_post_success
def test_create_post_success(client):
author = models.Person.objects.create(name="The Author")
data = dump_json({
"posts": {
"title": "This is the title",
"links": {
"author": author.pk,
"comments": [],
},
}
})
response = client.post(
reverse("post-list"), data=data,
content_type="application/vnd.api+json")
assert response.status_code == 201
assert response['content-type'] == 'application/vnd.api+json'
post = models.Post.objects.get()
results = {
"posts": {
"id": str(post.pk),
"href": "http://testserver/posts/%s/" % post.pk,
"title": "This is the title",
"links": {
"author": str(author.pk),
"comments": []
}
},
"links": {
"posts.author": {
"href": "http://testserver/people/{posts.author}/",
"type": "people"
},
"posts.comments": {
"href": "http://testserver/comments/{posts.comments}/",
"type": "comments"
}
},
}
assert response.content == dump_json(results)
开发者ID:canufeel,项目名称:drf-json-api,代码行数:42,代码来源:test_list.py
示例19: test_options
def test_options(client):
results = {
"meta": {
"actions": {
"POST": {
"author": {
"choices": [],
"label": "Author",
"read_only": False,
"required": True,
"type": "field"
},
"comments": {
"choices": [],
"label": "Comments",
"read_only": False,
"required": True,
"type": "field"
},
"id": {
"label": "ID",
"read_only": True,
"required": False,
"type": "integer"
},
"title": {
"label": "Title",
"read_only": False,
"required": True,
"type": "string"
},
"url": {
"label": "Url",
"read_only": True,
"required": False,
"type": "field"
}
}
},
"description": "",
"name": "Post List",
"parses": ["application/vnd.api+json"],
"renders": ["application/vnd.api+json"],
}
}
response = client.options(reverse("post-list"))
assert response.status_code == 200
assert response.content == dump_json(results)
开发者ID:jwhitlock,项目名称:drf-json-api,代码行数:50,代码来源:test_list.py
示例20: test_multiple_linked
def test_multiple_linked(client):
author = models.Person.objects.create(name="test")
post = models.Post.objects.create(
author=author, title="One amazing test post.")
models.Comment.objects.create(
post=post, body="This is a test comment.")
models.Comment.objects.create(
post=post, body="One more comment.")
results = {
"posts": [
{
"id": "1",
"href": "http://testserver/posts/1/",
"title": "One amazing test post.",
"links": {
"author": "1",
"comments": ["1", "2"],
},
},
],
"links": {
"posts.author": {
"href": "http://testserver/people/{posts.author}/",
"type": "people",
},
"posts.comments": {
"href": "http://testserver/comments/{posts.comments}/",
"type": "comments",
}
},
"linked": {
"comments": [
{
"id": "1",
"href": "http://testserver/comments/1/",
"body": "This is a test comment.",
},
{
"id": "2",
"href": "http://testserver/comments/2/",
"body": "One more comment.",
},
],
},
}
response = client.get(reverse("nested-post-list"))
assert response.content == dump_json(results)
开发者ID:clhamilton,项目名称:drf-json-api,代码行数:50,代码来源:test_nested.py
注:本文中的tests.utils.dump_json函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论