Skip to content

Commit

Permalink
Fixed #11929 -- Make sure YAML output order is helpful
Browse files Browse the repository at this point in the history
By adopting Python 3.6+, this was already ensured, but this test makes
sure we'll have no regression.
  • Loading branch information
rixx committed Apr 26, 2019
1 parent 8567697 commit f693a96
Showing 1 changed file with 48 additions and 22 deletions.
70 changes: 48 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
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,48 @@ 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())
self.assertEqual(serial_str, """- model: serializers.article
pk: 1
fields:
author: 2
headline: Poker has no place on ESPN
pub_date: 2006-06-16 11:00:00
categories:
- 3
- 1
meta_data: []
- model: serializers.article
pk: 2
fields:
author: 1
headline: Time to reform copyright
pub_date: 2006-06-16 13:00:11.000345
categories:
- 2
- 3
meta_data: []
""")


@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"""

0 comments on commit f693a96

Please sign in to comment.