Add tests
This commit is contained in:
47
jsignature/tests/fields.py
Normal file
47
jsignature/tests/fields.py
Normal file
@@ -0,0 +1,47 @@
|
||||
import json
|
||||
import django
|
||||
from django.test import SimpleTestCase
|
||||
from django.core.exceptions import ValidationError
|
||||
|
||||
from ..widgets import JSignatureWidget
|
||||
from ..fields import JSignatureField
|
||||
from ..forms import JSignatureField as JSignatureFormField
|
||||
|
||||
|
||||
class JSignatureFieldTest(SimpleTestCase):
|
||||
|
||||
def test_to_python(self):
|
||||
f = JSignatureField()
|
||||
# Empty values
|
||||
for val in ['', [], '[]']:
|
||||
self.assertIsNone(f.to_python(val))
|
||||
# Correct values
|
||||
val = [{"x":[1,2], "y":[3,4]}]
|
||||
self.assertEquals(val, f.to_python(val))
|
||||
val_str = '[{"x":[1,2], "y":[3,4]}]'
|
||||
self.assertEquals(val, f.to_python(val_str))
|
||||
# Incorrect values
|
||||
val = 'foo'
|
||||
self.assertRaises(ValidationError, f.to_python, val)
|
||||
|
||||
def test_get_prep_value(self):
|
||||
f = JSignatureField()
|
||||
# Empty values
|
||||
for val in ['', [], '[]']:
|
||||
self.assertIsNone(f.get_prep_value(val))
|
||||
# Correct values
|
||||
val = [{"x":[1,2], "y":[3,4]}]
|
||||
val_prep = f.get_prep_value(val)
|
||||
self.assertIsInstance(val_prep, basestring)
|
||||
self.assertEquals(val, json.loads(val_prep))
|
||||
val_str = '[{"x":[1,2], "y":[3,4]}]'
|
||||
val_prep = f.get_prep_value(val_str)
|
||||
self.assertIsInstance(val_prep, basestring)
|
||||
self.assertEquals(val, json.loads(val_prep))
|
||||
# Incorrect values
|
||||
val = type('Foo')
|
||||
self.assertRaises(ValidationError, f.get_prep_value, val)
|
||||
|
||||
def test_formfield(self):
|
||||
f = JSignatureField()
|
||||
self.assertTrue(issubclass(f.formfield().__class__, JSignatureFormField))
|
||||
Reference in New Issue
Block a user