From 06e7e81de03bb27766cbdeb36b9c91329c192541 Mon Sep 17 00:00:00 2001 From: Serene-Arc Date: Sat, 27 Feb 2021 08:26:42 +1000 Subject: [PATCH] Add tests for Redgifs --- .../site_downloaders/redgifs.py | 9 ++--- .../tests/downloaders/test_redgifs.py | 37 +++++++++++++++++++ 2 files changed, 41 insertions(+), 5 deletions(-) create mode 100644 bulkredditdownloader/tests/downloaders/test_redgifs.py diff --git a/bulkredditdownloader/site_downloaders/redgifs.py b/bulkredditdownloader/site_downloaders/redgifs.py index 5953fa7..e5816b7 100644 --- a/bulkredditdownloader/site_downloaders/redgifs.py +++ b/bulkredditdownloader/site_downloaders/redgifs.py @@ -31,11 +31,10 @@ class Redgifs(GifDeliveryNetwork): url = "https://redgifs.com/watch/" + url.split('/')[-1] - headers = [ - 'User-Agent', - 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)' - ' Chrome/67.0.3396.87 Safari/537.36 OPR/54.0.2952.64' - ] + headers = {'User-Agent': + 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)' + ' Chrome/67.0.3396.87 Safari/537.36 OPR/54.0.2952.64' + } page_source = requests.get(url, headers=headers).text diff --git a/bulkredditdownloader/tests/downloaders/test_redgifs.py b/bulkredditdownloader/tests/downloaders/test_redgifs.py new file mode 100644 index 0000000..a3fbef4 --- /dev/null +++ b/bulkredditdownloader/tests/downloaders/test_redgifs.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python3 +# coding=utf-8 + +from unittest.mock import Mock + +import pytest + +from bulkredditdownloader.resource import Resource +from bulkredditdownloader.site_downloaders.redgifs import Redgifs + + +@pytest.mark.online +@pytest.mark.parametrize(('test_url', 'expected'), ( + ('https://www.redgifs.com/watch/forcefulenchantedanaconda', + 'https://thumbs2.redgifs.com/ForcefulEnchantedAnaconda.mp4'), + ('https://www.redgifs.com/watch/ficklelightirishsetter', + 'https://thumbs2.redgifs.com/FickleLightIrishsetter.mp4'), +)) +def test_get_link(test_url: str, expected: str): + result = Redgifs._get_link(test_url) + assert result == expected + + +@pytest.mark.online +@pytest.mark.parametrize(('test_url', 'expected_hash'), ( + ('https://www.redgifs.com/watch/forcefulenchantedanaconda', '75a23fff6ddec5de3b61d53db1f265a4'), + ('https://www.redgifs.com/watch/ficklelightirishsetter', 'd0ea030883c9a3a6a2991f5aa61369e7'), +)) +def test_download_resource(test_url: str, expected_hash: str): + mock_submission = Mock + mock_submission.url = test_url + test_site = Redgifs(mock_submission) + resources = test_site.find_resources() + assert len(resources) == 1 + assert isinstance(resources[0], Resource) + resources[0].download() + assert resources[0].hash.hexdigest() == expected_hash