Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed #11929 -- Make sure YAML output order is helpful #11285

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
53 changes: 31 additions & 22 deletions tests/serializers/test_yaml.py
Expand Up @@ -85,29 +85,29 @@ def test_dumpdata_pyyaml_error_message(self):
@unittest.skipUnless(HAS_YAML, "No yaml library detected")
class YamlSerializerTestCase(SerializersTestBase, TestCase):
serializer_name = "yaml"
fwd_ref_str = """- fields:
fwd_ref_str = """- model: serializers.article
felixxm marked this conversation as resolved.
Show resolved Hide resolved
pk: 1
fields:
headline: Forward references pose no problem
pub_date: 2006-06-16 15:00:00
categories: [1]
author: 1
- model: serializers.category
pk: 1
model: serializers.article
- fields:
fields:
name: Reference
- model: serializers.author
pk: 1
model: serializers.category
- fields:
name: Agnes
pk: 1
model: serializers.author"""
fields:
name: Agnes"""

pkless_str = """- fields:
name: Reference
pkless_str = """- model: serializers.category
pk: null
model: serializers.category
- fields:
name: Non-fiction
model: serializers.category"""
fields:
name: Reference
- model: serializers.category
fields:
name: Non-fiction"""

mapping_ordering_str = """- model: serializers.article
pk: %(article_pk)s
Expand Down Expand Up @@ -159,22 +159,31 @@ def test_yaml_deserializer_exception(self):
for obj in serializers.deserialize("yaml", "{"):
pass

def test_yaml_output_ordering(self):
"""Output is in the expected order of model, pk, fields."""
from .models import Article
serial_str = serializers.serialize(self.serializer_name, Article.objects.all())
expected_start = """- model: serializers.article
pk: {a1.pk}
fields:""".format(a1=Article.objects.first())
self.assertEqual(serial_str[:len(expected_start)], expected_start)


@unittest.skipUnless(HAS_YAML, "No yaml library detected")
class YamlSerializerTransactionTestCase(SerializersTransactionTestBase, TransactionTestCase):
serializer_name = "yaml"
fwd_ref_str = """- fields:
fwd_ref_str = """- model: serializers.article
pk: 1
fields:
headline: Forward references pose no problem
pub_date: 2006-06-16 15:00:00
categories: [1]
author: 1
- model: serializers.category
pk: 1
model: serializers.article
- fields:
fields:
name: Reference
- model: serializers.author
pk: 1
model: serializers.category
- fields:
name: Agnes
pk: 1
model: serializers.author"""
fields:
name: Agnes"""