weboob-devel/modules/dailymotion/test.py
2014-09-26 10:18:11 +02:00

63 lines
2.4 KiB
Python

# -*- coding: utf-8 -*-
# Copyright(C) 2010-2011 Romain Bignon
#
# This file is part of weboob.
#
# weboob is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# weboob is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.test import BackendTest
from weboob.capabilities.video import BaseVideo
from random import choice
class DailymotionTest(BackendTest):
MODULE = 'dailymotion'
# Not easy to find a kids video which will always be there
# This might break in the future
KIDS_VIDEO_TITLE = 'Telmo et Tula'
def test_search(self):
l = list(self.backend.search_videos('chirac'))
self.assertTrue(len(l) > 0)
v = choice(l)
self.backend.fillobj(v, ('url',))
self.assertTrue(v.url and v.url.startswith('http://'), 'URL for video "%s" not found: %s' % (v.id, v.url))
self.backend.browser.openurl(v.url)
def test_latest(self):
l = list(self.backend.iter_resources([BaseVideo], [u'latest']))
assert len(l)
v = choice(l)
self.backend.fillobj(v, ('url',))
self.assertTrue(v.url and v.url.startswith('http://'), 'URL for video "%s" not found: %s' % (v.id, v.url))
def test_kids_video(self):
l = list(self.backend.search_videos(DailymotionTest.KIDS_VIDEO_TITLE))
self.assertTrue(len(l) > 0)
for elt in l[:10]:
video_id = elt.id
video = self.backend.get_video(video_id)
self.assertIsNotNone(video.title)
if DailymotionTest.KIDS_VIDEO_TITLE in video.title:
self.assertTrue(video.url and video.url.startswith('http://'), 'URL for video "%s" not found: %s' %
(video.id, video.url))
return
self.fail("Can't find test video '%s' in kids.dailymotion.com video "
"on dailymotion, maybe the test video should be changed."
% DailymotionTest.KIDS_VIDEO_TITLE)