1
0
Fork 0
mirror of synced 2024-06-03 10:54:38 +12:00
bulk-downloader-for-reddit/tests/test_download_filter.py

65 lines
1.9 KiB
Python
Raw Normal View History

2021-02-07 23:23:08 +13:00
#!/usr/bin/env python3
# coding=utf-8
from unittest.mock import MagicMock
2021-02-07 23:23:08 +13:00
import pytest
2021-04-12 19:58:32 +12:00
from bdfr.download_filter import DownloadFilter
from bdfr.resource import Resource
2021-02-07 23:23:08 +13:00
@pytest.fixture()
def download_filter() -> DownloadFilter:
return DownloadFilter(['mp4', 'mp3'], ['test.com', 'reddit.com'])
@pytest.mark.parametrize(('test_extension', 'expected'), (
('.mp4', False),
('.avi', True),
('.random.mp3', False),
('mp4', False),
))
def test_filter_extension(test_extension: str, expected: bool, download_filter: DownloadFilter):
result = download_filter._check_extension(test_extension)
2021-02-07 23:23:08 +13:00
assert result == expected
@pytest.mark.parametrize(('test_url', 'expected'), (
('test.mp4', True),
('http://reddit.com/test.mp4', False),
('http://reddit.com/test.gif', False),
('https://www.example.com/test.mp4', True),
('https://www.example.com/test.png', True),
))
2021-02-07 23:23:08 +13:00
def test_filter_domain(test_url: str, expected: bool, download_filter: DownloadFilter):
result = download_filter._check_domain(test_url)
assert result == expected
@pytest.mark.parametrize(('test_url', 'expected'), (
('test.mp4', False),
('test.gif', True),
('https://www.example.com/test.mp4', False),
('https://www.example.com/test.png', True),
('http://reddit.com/test.mp4', False),
('http://reddit.com/test.gif', False),
))
2021-02-07 23:23:08 +13:00
def test_filter_all(test_url: str, expected: bool, download_filter: DownloadFilter):
2021-07-27 15:39:49 +12:00
test_resource = Resource(MagicMock(), test_url, lambda: None)
result = download_filter.check_resource(test_resource)
2021-02-07 23:23:08 +13:00
assert result == expected
@pytest.mark.parametrize('test_url', (
'test.mp3',
'test.mp4',
'http://reddit.com/test.mp4',
't',
))
2021-02-07 23:23:08 +13:00
def test_filter_empty_filter(test_url: str):
download_filter = DownloadFilter()
2021-07-27 15:39:49 +12:00
test_resource = Resource(MagicMock(), test_url, lambda: None)
result = download_filter.check_resource(test_resource)
2021-02-07 23:23:08 +13:00
assert result is True