Move embed code to template

This commit is contained in:
Juda Kaleta 2014-02-27 09:29:54 +01:00
parent f09df0e752
commit c462362356
4 changed files with 31 additions and 15 deletions

View file

@ -1,4 +1,5 @@
import re
from django.template.loader import render_to_string
import requests
import json
@ -78,6 +79,11 @@ class VideoBackend(object):
Sets if HTTPS version allowed for specific backend.
"""
template_name = 'embed_video/embed_code.html'
"""
Name of embed code template used by :py:meth:`get_embed_code`.
"""
def __init__(self, url, is_secure=False):
"""
First it tries to load data from cache and if it don't succeed, run
@ -136,15 +142,17 @@ class VideoBackend(object):
def get_embed_code(self, width, height):
"""
Returns embed code.
Returns embed code rendered from template.
Template variables: ``{{ backend }}`` (instance of VideoBackend),
``{{ width }}``, ``{{ height }}``
"""
return '<iframe width="%(width)d" height="%(height)d" ' \
'src="%(url)s" frameborder="0" allowfullscreen>' \
'</iframe>' % {
'url': self.url,
'width': width,
'height': height,
}
return render_to_string(self.template_name, {
'backend': self,
'width': width,
'height': height,
})
def get_info(self):
raise NotImplementedError

View file

@ -0,0 +1,2 @@
<iframe width="{{ width }}" height="{{ height }}" src="{{ backend.url }}"
frameborder="0" allowfullscreen></iframe>

View file

@ -139,8 +139,9 @@ class SoundCloudBackendTestCase(BackendTestMixin, TestCase):
def test_get_embed_code(self):
self.assertEqual(self.foo.get_embed_code(100, 200),
'<iframe width="100" height="321" src="foobar" '
'frameborder="0" allowfullscreen></iframe>')
u'<iframe width="100" height="321" src="foobar"'
u'\n frameborder="0" allowfullscreen>'
u'</iframe>\n')
@patch('embed_video.backends.EMBED_VIDEO_TIMEOUT', 0.000001)
def test_timeout_in_get_info(self):

View file

@ -27,7 +27,8 @@ class EmbedVideoNodeTestCase(TestCase):
{% video ytb 'large' %}
{% endvideo %}
""")
rendered = u'<iframe width="960" height="720" src="http://www.youtube.com/embed/jsrRJyHBvzw?wmode=opaque" frameborder="0" allowfullscreen></iframe>'
rendered = u'''<iframe width="960" 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_direct_embed(self):
@ -35,7 +36,8 @@ class EmbedVideoNodeTestCase(TestCase):
{% load embed_video_tags %}
{{ 'http://www.youtube.com/watch?v=jsrRJyHBvzw'|embed:'large' }}
""")
rendered = u'<iframe width="960" height="720" src="http://www.youtube.com/embed/jsrRJyHBvzw?wmode=opaque" frameborder="0" allowfullscreen></iframe>'
rendered = u'''<iframe width="960" 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_direct_embed_tag(self):
@ -43,7 +45,8 @@ class EmbedVideoNodeTestCase(TestCase):
{% load embed_video_tags %}
{% video "http://www.youtube.com/watch?v=jsrRJyHBvzw" "large" %}
""")
rendered = u'<iframe width="960" height="720" src="http://www.youtube.com/embed/jsrRJyHBvzw?wmode=opaque" frameborder="0" allowfullscreen></iframe>'
rendered = u'''<iframe width="960" 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_direct_embed_tag_with_default_size(self):
@ -51,7 +54,8 @@ class EmbedVideoNodeTestCase(TestCase):
{% load embed_video_tags %}
{% video "http://www.youtube.com/watch?v=jsrRJyHBvzw" %}
""")
rendered = u'<iframe width="480" height="360" src="http://www.youtube.com/embed/jsrRJyHBvzw?wmode=opaque" frameborder="0" allowfullscreen></iframe>'
rendered = u'''<iframe width="480" height="360" src="http://www.youtube.com/embed/jsrRJyHBvzw?wmode=opaque"
frameborder="0" allowfullscreen></iframe>'''
self.assertEqual(template.render(self._grc()).strip(), rendered)
def test_user_size(self):
@ -61,7 +65,8 @@ class EmbedVideoNodeTestCase(TestCase):
{% video ytb '800x800' %}
{% endvideo %}
""")
rendered = u'<iframe width="800" height="800" src="http://www.youtube.com/embed/jsrRJyHBvzw?wmode=opaque" frameborder="0" allowfullscreen></iframe>'
rendered = u'''<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_wrong_size(self):