2013-07-31 08:02:45 +00:00
|
|
|
from mock import patch
|
2013-07-31 08:35:07 +00:00
|
|
|
from unittest import TestCase
|
2013-07-31 06:41:16 +00:00
|
|
|
|
2013-07-31 08:02:45 +00:00
|
|
|
from django.forms import ValidationError
|
2014-05-07 20:53:46 +00:00
|
|
|
|
2013-07-31 06:41:16 +00:00
|
|
|
from ..fields import EmbedVideoField, EmbedVideoFormField
|
2013-08-22 07:26:43 +00:00
|
|
|
from ..backends import UnknownBackendException, UnknownIdException
|
2013-07-31 06:41:16 +00:00
|
|
|
|
|
|
|
|
|
2013-07-31 08:02:45 +00:00
|
|
|
class EmbedVideoFieldTestCase(TestCase):
|
|
|
|
|
def setUp(self):
|
|
|
|
|
self.field = EmbedVideoField()
|
|
|
|
|
|
|
|
|
|
def test_formfield_form_class(self):
|
|
|
|
|
self.assertIsInstance(self.field.formfield(),
|
|
|
|
|
EmbedVideoFormField)
|
|
|
|
|
|
|
|
|
|
def test_south(self):
|
|
|
|
|
self.assertEqual(self.field.south_field_triple(),
|
|
|
|
|
(
|
|
|
|
|
'embed_video.fields.EmbedVideoField',
|
|
|
|
|
[], {'max_length': '200'}
|
|
|
|
|
))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class EmbedVideoFormFieldTestCase(TestCase):
|
|
|
|
|
def setUp(self):
|
|
|
|
|
self.formfield = EmbedVideoFormField()
|
|
|
|
|
|
|
|
|
|
def test_validation_unknownbackend(self):
|
|
|
|
|
with patch('embed_video.fields.detect_backend') as mock_detect_backend:
|
|
|
|
|
mock_detect_backend.return_value = True
|
|
|
|
|
mock_detect_backend.side_effect = UnknownBackendException
|
|
|
|
|
self.assertRaises(ValidationError, self.formfield.validate,
|
|
|
|
|
('http://youtube.com/v/123/',))
|
2013-07-31 06:41:16 +00:00
|
|
|
|
2013-07-31 08:02:45 +00:00
|
|
|
def test_validation_unknownid(self):
|
|
|
|
|
with patch('embed_video.fields.detect_backend') as mock_detect_backend:
|
|
|
|
|
mock_detect_backend.return_value = True
|
|
|
|
|
mock_detect_backend.side_effect = UnknownIdException
|
|
|
|
|
self.assertRaises(ValidationError, self.formfield.validate,
|
|
|
|
|
('http://youtube.com/v/123/',))
|
2013-08-20 08:49:33 +00:00
|
|
|
|
|
|
|
|
def test_validation_correct(self):
|
|
|
|
|
url = 'http://my-testing.url.com'
|
|
|
|
|
with patch('embed_video.fields.detect_backend') as mock_detect_backend:
|
|
|
|
|
mock_detect_backend.return_value = True
|
|
|
|
|
self.assertEqual(url, self.formfield.validate(url))
|
2014-03-24 18:43:42 +00:00
|
|
|
|
|
|
|
|
def test_validation_super(self):
|
|
|
|
|
self.assertRaises(ValidationError, self.formfield.validate, '')
|
|
|
|
|
|
|
|
|
|
def test_validation_allowed_empty(self):
|
|
|
|
|
formfield = EmbedVideoFormField(required=False)
|
|
|
|
|
self.assertIsNone(formfield.validate(''))
|