1
0
Fork 0
mirror of synced 2024-07-03 13:30:45 +12:00
bulk-downloader-for-reddit/bulkredditdownloader/tests/downloaders/test_download_factory.py
2021-04-18 16:44:05 +03:00

52 lines
2 KiB
Python

#!/usr/bin/env python3
# coding=utf-8
import praw
import pytest
from bulkredditdownloader.exceptions import NotADownloadableLinkError
from bulkredditdownloader.site_downloaders.base_downloader import BaseDownloader
from bulkredditdownloader.site_downloaders.direct import Direct
from bulkredditdownloader.site_downloaders.download_factory import DownloadFactory
from bulkredditdownloader.site_downloaders.erome import Erome
from bulkredditdownloader.site_downloaders.gallery import Gallery
from bulkredditdownloader.site_downloaders.gfycat import Gfycat
from bulkredditdownloader.site_downloaders.gif_delivery_network import GifDeliveryNetwork
from bulkredditdownloader.site_downloaders.imgur import Imgur
from bulkredditdownloader.site_downloaders.redgifs import Redgifs
from bulkredditdownloader.site_downloaders.self_post import SelfPost
from bulkredditdownloader.site_downloaders.vreddit import VReddit
from bulkredditdownloader.site_downloaders.youtube import Youtube
@pytest.mark.online
@pytest.mark.reddit
@pytest.mark.parametrize(('test_submission_id', 'expected_class'), (
('lu8l8g', VReddit),
('lu29zn', SelfPost),
('lu2ykk', Direct), # Imgur direct link
('luh2pd', Direct), # Reddit direct link
('luo9eo', Direct), # Imgur direct link gif
('lumulo', Direct), # Imgur direct link gif
('lui5t3', Imgur),
('lu93m7', Gallery),
('luf1nu', Gfycat),
('luxmgx', Erome),
('lupb4r', Youtube),
('lul6l7', Redgifs),
('luu376', GifDeliveryNetwork),
))
def test_factory_lever_good(test_submission_id: str, expected_class: BaseDownloader, reddit_instance: praw.Reddit):
submission = reddit_instance.submission(id=test_submission_id)
result = DownloadFactory.pull_lever(submission.url)
assert result is expected_class
@pytest.mark.parametrize('test_url', (
'random.com',
'bad',
))
def test_factory_lever_bad(test_url: str):
with pytest.raises(NotADownloadableLinkError):
DownloadFactory.pull_lever(test_url)