80c66c8c78
Fixes searched class to not include thumbnails of other albums.
55 lines
2 KiB
Python
55 lines
2 KiB
Python
#!/usr/bin/env python3
|
|
|
|
import re
|
|
from unittest.mock import MagicMock
|
|
|
|
import pytest
|
|
|
|
from bdfr.site_downloaders.erome import Erome
|
|
|
|
|
|
@pytest.mark.online
|
|
@pytest.mark.parametrize(
|
|
("test_url", "expected_urls"),
|
|
(
|
|
("https://www.erome.com/a/vqtPuLXh", (r"https://[a-z]\d+.erome.com/\d{3}/vqtPuLXh/KH2qBT99_480p.mp4",)),
|
|
(
|
|
"https://www.erome.com/a/ORhX0FZz",
|
|
(
|
|
r"https://[a-z]\d+.erome.com/\d{3}/ORhX0FZz/9IYQocM9_480p.mp4",
|
|
r"https://[a-z]\d+.erome.com/\d{3}/ORhX0FZz/9eEDc8xm_480p.mp4",
|
|
r"https://[a-z]\d+.erome.com/\d{3}/ORhX0FZz/EvApC7Rp_480p.mp4",
|
|
r"https://[a-z]\d+.erome.com/\d{3}/ORhX0FZz/LruobtMs_480p.mp4",
|
|
r"https://[a-z]\d+.erome.com/\d{3}/ORhX0FZz/TJNmSUU5_480p.mp4",
|
|
r"https://[a-z]\d+.erome.com/\d{3}/ORhX0FZz/X11Skh6Z_480p.mp4",
|
|
r"https://[a-z]\d+.erome.com/\d{3}/ORhX0FZz/bjlTkpn7_480p.mp4",
|
|
),
|
|
),
|
|
),
|
|
)
|
|
def test_get_link(test_url: str, expected_urls: tuple[str]):
|
|
result = Erome._get_links(test_url)
|
|
assert all([any([re.match(p, r) for r in result]) for p in expected_urls])
|
|
|
|
|
|
@pytest.mark.online
|
|
@pytest.mark.slow
|
|
@pytest.mark.parametrize(
|
|
("test_url", "expected_hashes_len"),
|
|
(
|
|
("https://www.erome.com/a/vqtPuLXh", 1),
|
|
("https://www.erome.com/a/4tP3KI6F", 1),
|
|
("https://www.erome.com/a/WNyK674a", 41),
|
|
),
|
|
)
|
|
def test_download_resource(test_url: str, expected_hashes_len: int):
|
|
# Can't compare hashes for this test, Erome doesn't return the exact same file from request to request so the hash
|
|
# will change back and forth randomly
|
|
mock_submission = MagicMock()
|
|
mock_submission.url = test_url
|
|
test_site = Erome(mock_submission)
|
|
resources = test_site.find_resources()
|
|
for res in resources:
|
|
res.download()
|
|
resource_hashes = [res.hash.hexdigest() for res in resources]
|
|
assert len(resource_hashes) == expected_hashes_len
|