django-embed-video/embed_video/tests/tests.py
Juda Kaleta 20733d8997 tests
2013-06-01 14:04:45 +02:00

106 lines
3.6 KiB
Python

import os
from unittest import main, TestCase
from django.http import HttpRequest
from django.template.base import Template
from django.template.context import RequestContext
from ..base import detect_backend, YoutubeBackend, VimeoBackend
os.environ['DJANGO_SETTINGS_MODULE'] = 'embed_video.tests.django_settings'
class EmbedVideoTestCase(TestCase):
youtube_urls = (
('http://www.youtube.com/watch?v=jsrRJyHBvzw', 'jsrRJyHBvzw'),
('http://youtube.com/watch?v=jsrRJyHBvzw', 'jsrRJyHBvzw'),
('http://youtu.be/jsrRJyHBvzw', 'jsrRJyHBvzw'),
('http://www.youtube.com/watch?v=iwGFalTRHDA&feature=related', 'iwGFalTRHDA'),
('http://youtu.be/n17B_uFF4cA', 'n17B_uFF4cA'),
('http://www.youtube.com/watch?v=t-ZRX8984sc', 't-ZRX8984sc'),
('http://youtu.be/t-ZRX8984sc', 't-ZRX8984sc'),
)
vimeo_urls = (
('http://vimeo.com/66577491', '66577491'),
('http://www.vimeo.com/66577491', '66577491'),
)
def setUp(self):
from django.conf import settings as django_settings
self.django_settings = django_settings
def _grc(self):
return RequestContext(HttpRequest())
def test_embed(self):
template = Template("""
{% load embed_video_tags %}
{% video 'http://www.youtube.com/watch?v=jsrRJyHBvzw' as ytb %}
{{ ytb|embed:'large' }}
{% endvideo %}
""")
rendered = '<iframe width="1280" height="720" src="http://www.youtube.com/embed/jsrRJyHBvzw?wmode=opaque" frameborder="0" allowfullscreen></iframe>'
self.assertEqual(template.render(self._grc()).strip(), rendered)
def test_embed_user_size(self):
template = Template("""
{% load embed_video_tags %}
{% video 'http://www.youtube.com/watch?v=jsrRJyHBvzw' as ytb %}
{{ ytb|embed:'800x800' }}
{% endvideo %}
""")
rendered = '<iframe width="800" height="800" src="http://www.youtube.com/embed/jsrRJyHBvzw?wmode=opaque" frameborder="0" allowfullscreen></iframe>'
self.assertEqual(template.render(self._grc()).strip(), rendered)
def test_tag_youtube(self):
template = Template("""
{% load embed_video_tags %}
{% video 'http://www.youtube.com/watch?v=jsrRJyHBvzw' as ytb %}
{{ ytb.url }}
{% endvideo %}
""")
rendered = 'http://www.youtube.com/embed/jsrRJyHBvzw?wmode=opaque'
self.assertEqual(template.render(self._grc()).strip(), rendered)
def test_tag_vimeo(self):
template = Template("""
{% load embed_video_tags %}
{% video 'https://vimeo.com/66577491' as vimeo %}
{{ vimeo.url }}
{% endvideo %}
""")
rendered = 'http://player.vimeo.com/video/66577491'
self.assertEqual(template.render(self._grc()).strip(), rendered)
def test_detect_youtube(self):
for url in self.youtube_urls:
backend = detect_backend(url[0])
self.assertIsInstance(backend, YoutubeBackend)
def test_detect_vimeo(self):
for url in self.vimeo_urls:
backend = detect_backend(url[0])
self.assertIsInstance(backend, VimeoBackend)
def test_code_youtube(self):
for url in self.youtube_urls:
backend = YoutubeBackend(url[0])
code = backend.get_code()
self.assertEqual(code, url[1])
def test_code_vimeo(self):
for url in self.vimeo_urls:
backend = VimeoBackend(url[0])
code = backend.get_code()
self.assertEqual(code, url[1])
if __name__ == '__main__':
main()