File: test_forms.py

package info (click to toggle)
python-django-jsonfield 0.9.12-1~bpo70%2B1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy-backports
  • size: 160 kB
  • sloc: python: 476; makefile: 3
file content (56 lines) | stat: -rw-r--r-- 1,873 bytes parent folder | download
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
47
48
49
50
51
52
53
54
55
56
from django.test import TestCase as DjangoTestCase
from django.utils import unittest
from django.forms import ValidationError

from jsonfield.forms import JSONFormField
from jsonfield.tests.jsonfield_test_app.forms import JSONTestForm, JSONTestModelForm

class JSONFormFieldTest(DjangoTestCase):
    def test_form_field_clean_empty_object(self):
        field = JSONFormField(required=False)
        self.assertEquals({}, field.clean('{}'))
        
    def test_form_field_clean_object(self):
        field = JSONFormField(required=False)
        self.assertEquals(
            {'foo':'bar', 'baz':2},
            field.clean('{"foo":"bar","baz":2}')
        )
    
    def test_form_field_clean_empty_array(self):
        field = JSONFormField(required=False)
        self.assertEquals([],field.clean('[]'))
    
    def test_required_form_field_array(self):
        field = JSONFormField(required=True)
        self.assertEquals([], field.clean('[]'))
        
    def test_required_form_field_object(self):
        field = JSONFormField(required=True)
        self.assertEquals({}, field.clean('{}'))
    
    def test_required_form_field_empty(self):
        field = JSONFormField(required=True)
        with self.assertRaises(ValidationError):
            field.clean('')
    
    def test_invalid_json(self):
        field = JSONFormField(required=True)
        
        with self.assertRaises(ValidationError):
            field.clean('{"foo"}')

class JSONFormTest(DjangoTestCase):
    def test_form_clean(self):
        form = JSONTestForm({})
        self.assertFalse(form.is_valid())
    

class JSONFormMultipleSelectFieldTest(DjangoTestCase):
    def test_multiple_select_data(self):
        form = JSONTestForm({'json_data': [u'SA', u'WA']})
        assert form.is_valid()
        
        self.assertEquals([u'SA', u'WA'], form.cleaned_data['json_data'])