-
Notifications
You must be signed in to change notification settings - Fork 136
/
tests_fields.py
65 lines (51 loc) · 2.39 KB
/
tests_fields.py
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
57
58
59
60
61
62
63
64
65
from mock import patch
from unittest import TestCase
from django.forms import ValidationError
from django import VERSION
from ..fields import EmbedVideoField, EmbedVideoFormField
from ..backends import UnknownBackendException, UnknownIdException, \
YoutubeBackend
class EmbedVideoFieldTestCase(TestCase):
def setUp(self):
self.field = EmbedVideoField()
def test_formfield_form_class(self):
self.assertIsInstance(self.field.formfield(),
EmbedVideoFormField)
if VERSION < (1, 9):
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_unknown_backend(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/',))
def test_validation_unknown_id(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/',))
def test_validation_correct(self):
url = 'http://www.youtube.com/watch?v=gauN0gzxTcU'
with patch('embed_video.fields.detect_backend') as mock_detect_backend:
mock_detect_backend.return_value = YoutubeBackend(url)
self.assertEqual(url, self.formfield.validate(url))
def test_validation_unknown_code(self):
url = 'http://www.youtube.com/edit?abcd=abcd'
self.assertRaises(ValidationError, self.formfield.validate, url)
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(''))