kawaz.apps.kfm.tests.test_extras.test_youtube のソースコード

from django.test import TestCase
from django.template.loader import render_to_string
from ...extras.youtube import parse_youtube_urls


[ドキュメント]class ParseYouTubeURLsTestCase(TestCase):
[ドキュメント] def setUp(self): self.video_id = 'r-j9FZ2TQd0' self.template_str = 'https://www.youtube.com/watch?v={}' self.width = 640 self.height = 360
def _render_template(self, video_id, responsive=False, width=None, height=None): return render_to_string('kfm/extras/youtube.html', { 'video_id': video_id, 'responsive': responsive, 'width': width or self.width, 'height': height or self.height, }).strip()
[ドキュメント] def test_parse_youtube_urls(self): """YouTubeのURLは展開される""" value = self.template_str.format(self.video_id) value = parse_youtube_urls(value) self.assertEqual(value, self._render_template(self.video_id))
[ドキュメント] def test_parse_shorten_youtube_urls(self): """短縮されたYouTubeのURLは展開される""" value = "https://youtu.be/{}".format(self.video_id) value = parse_youtube_urls(value) self.assertEqual(value, self._render_template(self.video_id))
[ドキュメント] def test_parse_youtube_urls_responsive(self): """YouTubeのURLはレスポンシブ展開される""" value = self.template_str.format(self.video_id) value = parse_youtube_urls(value, responsive=True) self.assertEqual(value, self._render_template( self.video_id, responsive=True, ))
[ドキュメント] def test_parse_youtube_urls_width(self): """YouTubeのURLは展開される (Width指定)""" value = self.template_str.format(self.video_id) value = parse_youtube_urls(value, width=100) self.assertEqual(value, self._render_template( self.video_id, width=100, height=56, # アスペクト比16:9に自動指定される ))
[ドキュメント] def test_parse_youtube_urls_height(self): """YouTubeのURLは展開される (Height指定)""" value = self.template_str.format(self.video_id) value = parse_youtube_urls(value, height=100) self.assertEqual(value, self._render_template( self.video_id, height=100, ))
[ドキュメント] def test_parse_youtube_urls_single_quoated(self): """シングルクォートされたYouTubeURLは展開されない""" template_str = "'{}'".format(self.template_str) original = template_str.format(self.video_id) value = parse_youtube_urls(original) self.assertEqual(value, original)
[ドキュメント] def test_parse_youtube_urls_double_quoated(self): """ダブルクォートされたYouTubeURLは展開されない""" template_str = "\"{}\"".format(self.template_str) original = template_str.format(self.video_id) value = parse_youtube_urls(original) self.assertEqual(value, original)
[ドキュメント] def test_parse_youtube_urls_fenced(self): """フェンス化されたYouTubeURLは展開されない""" template_str = "`{}`".format(self.template_str) original = template_str.format(self.video_id) value = parse_youtube_urls(original) self.assertEqual(value, original) template_str = "```\n{}\n```".format(self.template_str) original = template_str.format(self.video_id) value = parse_youtube_urls(original) self.assertEqual(value, original)
[ドキュメント] def test_parse_youtube_urls_multiple(self): """複数のYouTubeURLも正しく展開される""" template_str = ( "オススメ動画です\n" "http://www.youtube.com/watch?v={}\n" "しつこいですがオススメです\n" "http://www.youtube.com/watch?v={}\n" "オススメ http://www.youtube.com/watch?v={}\n" "http://www.youtube.com/watch?v={} かなり\n" ) value = template_str.format( self.video_id, self.video_id, self.video_id, self.video_id, ) value = parse_youtube_urls(value) self.assertEqual(value, ( "オススメ動画です\n" "{}\n" "しつこいですがオススメです\n" "{}\n" "オススメ {}\n" "{} かなり\n" ).format( self._render_template(self.video_id), self._render_template(self.video_id), self._render_template(self.video_id), self._render_template(self.video_id), ))