aboutsummaryrefslogtreecommitdiff
path: root/test/test_providers.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/test_providers.py')
-rw-r--r--test/test_providers.py44
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']