diff options
| author | badaud_t | 2013-10-17 01:08:24 +0200 | 
|---|---|---|
| committer | badaud_t | 2013-10-17 01:08:24 +0200 | 
| commit | b730aec0f46e2b849b3c597bcf1a1bcdc158e415 (patch) | |
| tree | 4f441988d43e884fa77dc73d8465bb2c8b4ae949 /rest_framework | |
| parent | 8a5fea06f01ed4c5114ec0743516b6e6179c88b4 (diff) | |
| download | django-rest-framework-b730aec0f46e2b849b3c597bcf1a1bcdc158e415.tar.bz2 | |
Fix decimal support with YAMLRenderer
Diffstat (limited to 'rest_framework')
| -rw-r--r-- | rest_framework/tests/test_renderers.py | 11 | ||||
| -rw-r--r-- | rest_framework/utils/encoders.py | 3 | 
2 files changed, 14 insertions, 0 deletions
diff --git a/rest_framework/tests/test_renderers.py b/rest_framework/tests/test_renderers.py index 78a7dac8..76299a89 100644 --- a/rest_framework/tests/test_renderers.py +++ b/rest_framework/tests/test_renderers.py @@ -354,6 +354,17 @@ if yaml:              data = parser.parse(StringIO(content))              self.assertEqual(obj, data) +        def test_render_decimal(self): +            """ +            Test YAML decimal rendering. +            """ +            renderer = YAMLRenderer() +            content = renderer.render({'field': Decimal('111.2')}, 'application/yaml') +            self.assertYAMLContains(content, "field: '111.2'") + +        def assertYAMLContains(self, content, string): +            self.assertTrue(string in content, '%r not in %r' % (string, content)) +  class XMLRendererTestCase(TestCase):      """ diff --git a/rest_framework/utils/encoders.py b/rest_framework/utils/encoders.py index 7efd5417..35ad206b 100644 --- a/rest_framework/utils/encoders.py +++ b/rest_framework/utils/encoders.py @@ -89,6 +89,9 @@ else:                      node.flow_style = best_style              return node +    SafeDumper.add_representer(decimal.Decimal, +            SafeDumper.represent_decimal) +      SafeDumper.add_representer(SortedDict,              yaml.representer.SafeRepresenter.represent_dict)      SafeDumper.add_representer(DictWithMetadata,  | 
