def test_ImgurMeme_direct_link(client_mock): """ Test Imgur Meme using a direct link to an image """ # Setup the ImgurMeme object test_link = "http://i.imgur.com/abcdef.pdf" test_source = "test imgur source" client_id = "mock_id" client_secret = "mock_secret" ImgurMeme.set_credentials(client_id, client_secret) i_meme = ImgurMeme(test_link, test_source) # Digest the link i_meme.digest() # Slack formating slack_str = i_meme.format_for_slack() assert not client_mock.called assert i_meme.link_type is ImgurMeme.DIRECT_LINK assert i_meme.image_count is None assert i_meme.first_image_link is None assert test_source in slack_str assert test_link in slack_str assert "more at" not in slack_str
def test_ImgurMeme_image_01(imgur_mock): # Setup the mock object imgur_mock.return_value = imgur_mock imgur_mock.get_image.return_value = imgur_mock imgur_mock.is_album = False other_fake_link = "fake image link" imgur_mock.link = other_fake_link # Setup the ImgurMeme object image_id = 'imageid1' test_link = "http://imgur.com/{0}".format(image_id) test_source = "test imgur source 4" client_id = "mock_id" client_secret = "mock_secret" ImgurMeme.set_credentials(client_id, client_secret) i_meme = ImgurMeme(test_link, test_source) # Digest the link i_meme.digest() # Slack formating slack_str = i_meme.format_for_slack() assert imgur_mock.called assert i_meme.link_type is ImgurMeme.IMAGE_LINK imgur_mock.get_image.assert_called_with(image_id) assert i_meme.image_count == 0 assert i_meme.first_image_link == other_fake_link assert test_source in slack_str assert other_fake_link in slack_str assert "more at" not in slack_str
def test_bad_link_type_exception(): """ Verify exception is thrown if link type is not recognized """ image_id = 'imageid1' test_link = "http://imgur.com/{0}".format(image_id) test_source = "test imgur source 4" client_id = "mock_id" client_secret = "mock_secret" ImgurMeme.set_credentials(client_id, client_secret) i_meme = ImgurMeme(test_link, test_source) i_meme._digested = True with pytest.raises(TypeError) as excstr: i_meme.format_for_slack() assert "Imgur link type not recognized" in str(excstr.value)
def test_undigested_exception(): """ Verify UndigestedError gets raised if digest hasn't been called """ # Setup the ImgurMeme object image_id = 'imageid1' test_link = "http://imgur.com/{0}".format(image_id) test_source = "test imgur source 4" client_id = "mock_id" client_secret = "mock_secret" ImgurMeme.set_credentials(client_id, client_secret) i_meme = ImgurMeme(test_link, test_source) with pytest.raises(UndigestedError) as excstr: i_meme.format_for_slack() assert "You must digest" in str(excstr.value)
def test_ImgurMeme_album_01(imgur_mock): """ Test Imgur Meme using a link to an album """ # Setup the mock object imgur_mock.return_value = imgur_mock imgur_mock.get_album.return_value = imgur_mock image_count = 10 fake_link = 'fake link' imgur_mock.images_count = image_count imgur_mock.images = [{'link': fake_link}, ] # Setup the ImgurMeme object album_id = 'albumid1' test_link = "http://imgur.com/a/{0}".format(album_id) test_source = "test imgur source" client_id = "mock_id" client_secret = "mock_secret" ImgurMeme.set_credentials(client_id, client_secret) i_meme = ImgurMeme(test_link, test_source) # Digest the link i_meme.digest() # Slack formating slack_str = i_meme.format_for_slack() assert imgur_mock.called assert i_meme.link_type is ImgurMeme.ALBUM_LINK imgur_mock.get_album.assert_called_with(album_id) assert i_meme.image_count == image_count assert i_meme.first_image_link == fake_link assert test_source in slack_str assert test_link in slack_str assert fake_link in slack_str assert "more at" in slack_str
def test_ImgurMeme_gallery_01(imgur_mock): # Setup the mock object imgur_mock.return_value = imgur_mock imgur_mock.gallery_item.return_value = imgur_mock imgur_mock.is_album = True image_count = 15 fake_link = 'fake link 3' imgur_mock.images_count = image_count imgur_mock.images = [{'link': fake_link}, ] # Setup the ImgurMeme object gallery_id = 'galleryid1' test_link = "http://imgur.com/g/{0}".format(gallery_id) test_source = "test imgur source 3" client_id = "mock_id" client_secret = "mock_secret" ImgurMeme.set_credentials(client_id, client_secret) i_meme = ImgurMeme(test_link, test_source) # Digest the link i_meme.digest() # Slack formating slack_str = i_meme.format_for_slack() assert imgur_mock.called assert i_meme.link_type is ImgurMeme.GALLERY_LINK imgur_mock.gallery_item.assert_called_with(gallery_id) assert i_meme.image_count == image_count assert i_meme.first_image_link == fake_link assert test_source in slack_str assert test_link in slack_str assert fake_link in slack_str assert "more at" in slack_str