# -*- 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 . 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)