2021-09-11 14:13:21 +12:00
|
|
|
#!/usr/bin/env python3
|
|
|
|
# coding=utf-8
|
|
|
|
from unittest.mock import Mock
|
|
|
|
|
|
|
|
import pytest
|
|
|
|
|
|
|
|
from bdfr.resource import Resource
|
|
|
|
from bdfr.site_downloaders.vidble import Vidble
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.parametrize(('test_url', 'expected'), (
|
|
|
|
('/RDFbznUvcN_med.jpg', '/RDFbznUvcN.jpg'),
|
|
|
|
))
|
|
|
|
def test_change_med_url(test_url: str, expected: str):
|
|
|
|
result = Vidble.change_med_url(test_url)
|
|
|
|
assert result == expected
|
|
|
|
|
|
|
|
|
|
|
|
@pytest.mark.online
|
|
|
|
@pytest.mark.parametrize(('test_url', 'expected'), (
|
|
|
|
('https://www.vidble.com/show/UxsvAssYe5', {
|
|
|
|
'https://www.vidble.com/UxsvAssYe5.gif',
|
|
|
|
}),
|
|
|
|
('https://vidble.com/show/RDFbznUvcN', {
|
|
|
|
'https://www.vidble.com/RDFbznUvcN.jpg',
|
|
|
|
}),
|
|
|
|
('https://vidble.com/album/h0jTLs6B', {
|
|
|
|
'https://www.vidble.com/XG4eAoJ5JZ.jpg',
|
|
|
|
'https://www.vidble.com/IqF5UdH6Uq.jpg',
|
|
|
|
'https://www.vidble.com/VWuNsnLJMD.jpg',
|
|
|
|
'https://www.vidble.com/sMmM8O650W.jpg',
|
|
|
|
}),
|
2021-09-14 15:47:46 +12:00
|
|
|
('https://www.vidble.com/pHuwWkOcEb', {
|
|
|
|
'https://www.vidble.com/pHuwWkOcEb.jpg',
|
|
|
|
}),
|
2021-09-11 14:13:21 +12:00
|
|
|
))
|
|
|
|
def test_get_links(test_url: str, expected: set[str]):
|
|
|
|
results = Vidble.get_links(test_url)
|
|
|
|
assert results == expected
|
|
|
|
|
|
|
|
|
2022-09-03 13:31:57 +12:00
|
|
|
@pytest.mark.online
|
2021-09-11 14:13:21 +12:00
|
|
|
@pytest.mark.parametrize(('test_url', 'expected_hashes'), (
|
2021-09-14 15:47:46 +12:00
|
|
|
('https://www.vidble.com/show/UxsvAssYe5', {
|
|
|
|
'0ef2f8e0e0b45936d2fb3e6fbdf67e28',
|
|
|
|
}),
|
|
|
|
('https://vidble.com/show/RDFbznUvcN', {
|
|
|
|
'c2dd30a71e32369c50eed86f86efff58',
|
|
|
|
}),
|
|
|
|
('https://vidble.com/album/h0jTLs6B', {
|
|
|
|
'3b3cba02e01c91f9858a95240b942c71',
|
|
|
|
'dd6ecf5fc9e936f9fb614eb6a0537f99',
|
|
|
|
'b31a942cd8cdda218ed547bbc04c3a27',
|
|
|
|
'6f77c570b451eef4222804bd52267481',
|
|
|
|
}),
|
|
|
|
('https://www.vidble.com/pHuwWkOcEb', {
|
|
|
|
'585f486dd0b2f23a57bddbd5bf185bc7',
|
|
|
|
}),
|
2021-09-11 14:13:21 +12:00
|
|
|
))
|
|
|
|
def test_find_resources(test_url: str, expected_hashes: set[str]):
|
|
|
|
mock_download = Mock()
|
|
|
|
mock_download.url = test_url
|
|
|
|
downloader = Vidble(mock_download)
|
|
|
|
results = downloader.find_resources()
|
|
|
|
assert all([isinstance(res, Resource) for res in results])
|
|
|
|
[res.download() for res in results]
|
|
|
|
hashes = set([res.hash.hexdigest() for res in results])
|
|
|
|
assert hashes == set(expected_hashes)
|