def test_get_img_urls(data): """test method.""" q_item = mock.Mock() item1 = mock.Mock() item2 = mock.Mock() with mock.patch('tumblr_ids.tumblr.Tumblr.__init__', return_value=None), \ mock.patch('tumblr_ids.tumblr.utils') as m_utils, \ mock.patch('tumblr_ids.tumblr.get_video_url') as m_get_vu: m_utils.download_page.return_value = data m_get_vu.return_value = [item2] from tumblr_ids.tumblr import Tumblr obj = Tumblr(blog=mock.Mock()) obj.post_queue = queue.Queue() obj.post_queue.put(q_item) obj.base_url = mock.Mock() obj.num = mock.Mock() obj.tag = mock.Mock() obj.proxies = mock.Mock() obj.img_re = mock.Mock() obj.img_re.findall.return_value = [item1] obj._process_images = mock.Mock() obj._process_images.return_value = {'is_limit_reached': False, 'image_counter': 0} # run obj._get_img_urls() # test m_utils.download_page.assert_called_once_with( "{}{}&num={}&tagged={}".format(obj.base_url, q_item, obj.num, obj.tag), proxies=obj.proxies ) if data: obj._process_images( image_counter=0, images=[item1, item2], is_limit_reached=False )
def test_get_img_urls(data): """test method.""" q_item = mock.Mock() item1 = mock.Mock() item2 = mock.Mock() with mock.patch('tumblr_ids.tumblr.Tumblr.__init__', return_value=None), \ mock.patch('tumblr_ids.tumblr.utils') as m_utils, \ mock.patch('tumblr_ids.tumblr.get_video_url') as m_get_vu: m_utils.download_page.return_value = data m_get_vu.return_value = [item2] from tumblr_ids.tumblr import Tumblr obj = Tumblr(blog=mock.Mock()) obj.post_queue = queue.Queue() obj.post_queue.put(q_item) obj.base_url = mock.Mock() obj.num = mock.Mock() obj.tag = mock.Mock() obj.proxies = mock.Mock() obj.img_re = mock.Mock() obj.img_re.findall.return_value = [item1] obj._process_images = mock.Mock() obj._process_images.return_value = { 'is_limit_reached': False, 'image_counter': 0 } # run obj._get_img_urls() # test m_utils.download_page.assert_called_once_with( "{}{}&num={}&tagged={}".format(obj.base_url, q_item, obj.num, obj.tag), proxies=obj.proxies) if data: obj._process_images(image_counter=0, images=[item1, item2], is_limit_reached=False)
def test_run_threads(): """test method.""" with mock.patch('tumblr_ids.tumblr.Tumblr.__init__', return_value=None), \ mock.patch('tumblr_ids.tumblr.threading') as m_threading: from tumblr_ids.tumblr import Tumblr obj = Tumblr(blog=mock.Mock()) obj.threads_num = 1 obj._get_img_urls = mock.Mock() # run obj._run_threads() # test m_threading.assert_has_calls([ mock.call.Thread(target=obj._get_img_urls), mock.call.Thread().start(), mock.call.Thread().join() ])
def test_get_imgs(is_img_queue_empty, need_save, total_posts_default, get_total_posts_retval): """test method.""" with mock.patch('tumblr_ids.tumblr.Tumblr.__init__', return_value=None): from tumblr_ids.tumblr import Tumblr obj = Tumblr(blog=mock.Mock()) obj.threads_num = 1 obj.tags = [mock.Mock()] obj.total_posts = total_posts_default obj.need_save = need_save obj.img_queue = mock.Mock() obj.img_queue.empty.return_value = is_img_queue_empty obj._download_imgs = mock.Mock() obj._get_img_urls = mock.Mock() obj._get_total_posts = mock.Mock(return_value=get_total_posts_retval) # run obj.get_imgs() # test assert obj.total_posts == 0 if total_posts_default or get_total_posts_retval: obj._get_img_urls.assert_called_once_with() if need_save and not is_img_queue_empty: obj._download_imgs.assert_called_once_with()