def test_selectVideoQuality_should_fail(self):
     sys.modules["__main__"].settings.getSetting.return_value = "0"
     player = BlipTVPlayer()
     
     video_url = player.selectVideoQuality({"1080p": "1080p-url"}, {"action": "fail"})
     
     assert(video_url == "")
 def test_selectVideoQuality_should_get_1080p(self):
     sys.modules["__main__"].settings.getSetting.return_value = "0"
     player = BlipTVPlayer()
     
     video_url = player.selectVideoQuality({"1080p": "1080p-url"}, {"action": "play", "quality": "1080p"})
     
     assert(video_url == "1080p-url | Mozilla/5.0 (MOCK)")
 def test_selectVideoQuality_should_get_quality_from_settings(self):
     sys.modules["__main__"].settings.getSetting.return_value = "3"
     player = BlipTVPlayer()
     
     video_url = player.selectVideoQuality({"1080p": "1080p-url"}, {"action": "play"})
     
     sys.modules["__main__"].settings.getSetting.assert_called_with("hd_videos")
     assert(video_url == "1080p-url | Mozilla/5.0 (MOCK)")
 def test_selectVideoQuality_should_get_download_quality(self):
     sys.modules["__main__"].settings.getSetting.return_value = "2"
     player = BlipTVPlayer()
     
     video_url = player.selectVideoQuality({"720p": "720p-url"}, {"action": "download"})
     
     sys.modules["__main__"].settings.getSetting.assert_called_with("hd_videos_download")
     assert(video_url == "720p-url")
 def test_selectVideoQuality_should_download_with_view_quality(self):
     settings = ["3", "0"]
     sys.modules["__main__"].settings.getSetting.side_effect = lambda x: settings.pop()
     player = BlipTVPlayer()
     
     video_url = player.selectVideoQuality({"1080p": "1080p-url"}, {"action": "download"})
     
     sys.modules["__main__"].settings.getSetting.assert_called_with("hd_videos")
     assert(video_url == "1080p-url")
    def test_getVideoObject_should_test_local_file(self):
        sys.modules["__main__"].xbmcvfs.exists.return_value = True
        sys.modules["__main__"].xbmcvfs.exists.return_value
        sys.modules["__main__"].settings.getSetting.return_value = "mock_path/"
        player = BlipTVPlayer()
        player.selectVideoQuality = Mock()
        player.selectVideoQuality.return_value = "video-url"
        player._getVideoLinks = Mock()
        player.getInfo = Mock()
        player.getInfo.return_value = {"Title": "mock"}
        
        (video, status) = player.getVideoObject({"action": "check-local", "videoid": "mockid"})

        sys.modules["__main__"].xbmcvfs.exists.assert_called_with('mock_path/mock-[mockid].mp4')
    def test_getVideoObject_should_fail(self):
        sys.modules["__main__"].xbmcvfs.exists.return_value = True
        sys.modules["__main__"].settings.getSetting.return_value = "mock_path/"
        sys.modules["__main__"].language.return_value = "mock error"
        player = BlipTVPlayer()
        player.selectVideoQuality = Mock()
        player.selectVideoQuality.return_value = "video-url"
        player._getVideoLinks = Mock()
        player._getVideoLinks.return_value = False
        player.getInfo = Mock()
        player.getInfo.return_value = {}

        params = {"action": "play", "videoid": "mockid"}
        video = player.getVideoObject(params)
        print "A : " + repr(video)
        print "B : " + repr(params)
        assert(params["apierror"] == "mock error")
    def test_getVideoObject_should_return_correctly(self):
        patcher = patch("urllib2.urlopen")
        patcher.start()
        import urllib2
        urllib2.urlopen().geturl = Mock(return_value="real-video-url")
        player = BlipTVPlayer()
        player.selectVideoQuality = Mock()
        player.selectVideoQuality.return_value = "video-url"
        player._getVideoLinks = Mock()
        player.getInfo = Mock()
        player.getInfo.return_value = {"Title": "mock"}

        video = player.getVideoObject({"action": "download"})
        patcher.stop()

        print "A : " + repr(video)
        assert(video["Title"] == "mock")
        assert(video["video_url"] == "real-video-url")