diff options
Diffstat (limited to 'test/test_providers.py')
-rw-r--r-- | test/test_providers.py | 44 |
1 files changed, 41 insertions, 3 deletions
diff --git a/test/test_providers.py b/test/test_providers.py index 9a5084e..32d81bd 100644 --- a/test/test_providers.py +++ b/test/test_providers.py @@ -1,9 +1,23 @@ +import os + import praw import pytest -from importer.downloader import Downloader import importer.providers as providers -from importer.providers import ProviderBase + +reddit_env = pytest.mark.skipif( + os.environ.get('CLIENT_ID', '') == '' or + os.environ.get('CLIENT_SECRET', '') == '' or + os.environ.get('USERNAME', '') == '' or + os.environ.get('PASSWORD', '') == '' + , reason="Require reddit env variables to be set." +) + + +@pytest.fixture +def mock_ydl_download(mocker): + # this function is responsible for downloading the file + return mocker.patch('importer.providers.youtube_dl_base.youtube_dl.YoutubeDL.process_info') @pytest.mark.parametrize("provider", @@ -15,9 +29,33 @@ from importer.providers import ProviderBase providers.Youtube, providers.YoutubeDlProviderBase ]) -def test_provider(provider): +def test_provider(provider, mock_ydl_download): for test in provider._TEST: with provider(url=test['url']) as p: p.download() assert p.downloaded assert p.paths == test['paths'] + + +@reddit_env +@pytest.mark.parametrize("provider", + [ + providers.GReddit + ]) +def test_provider_with_reddit(provider, mock_ydl_download): + username = os.environ.get('USERNAME', '') + password = os.environ.get('PASSWORD', '') + client_id = os.environ.get('CLIENT_ID', '') + client_secret = os.environ.get('CLIENT_SECRET', '') + + reddit = praw.Reddit(client_id=client_id, + client_secret=client_secret, + password=password, + user_agent="reddit-nextcloud-importer", + username=username) + + for test in provider._TEST: + with provider(url=test['url'], reddit=reddit) as p: + p.download() + assert p.downloaded + assert p.paths == test['paths'] |