more formatter tests, begin soundcloud unit tests
This commit is contained in:
parent
e1d60ab6e9
commit
585a432bc9
3 changed files with 144 additions and 18 deletions
|
|
@ -73,3 +73,45 @@ def mock_entry_kwargs(uid, title, ext, upload_date, thumbnail):
|
|||
@pytest.fixture
|
||||
def mock_entry(mock_entry_kwargs):
|
||||
return Entry(**mock_entry_kwargs)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def validate_entry_properties(
|
||||
uid,
|
||||
title,
|
||||
upload_date,
|
||||
upload_year,
|
||||
ext,
|
||||
thumbnail,
|
||||
thumbnail_ext,
|
||||
download_file_name,
|
||||
):
|
||||
def _validate_entry_properties(entry: Entry):
|
||||
assert entry.uid == uid
|
||||
assert entry.title == title
|
||||
# Title does not require sanitizing, so should be the same
|
||||
assert entry.sanitized_title == title
|
||||
assert entry.upload_date == upload_date
|
||||
assert entry.upload_year == upload_year
|
||||
assert entry.ext == ext
|
||||
assert entry.thumbnail == thumbnail
|
||||
assert entry.thumbnail_ext == thumbnail_ext
|
||||
assert entry.download_file_name == download_file_name
|
||||
|
||||
return True
|
||||
|
||||
return _validate_entry_properties
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def validate_entry_dict_contains_valid_formatters():
|
||||
def _validate_entry_dict_contains_valid_formatters(entry: Entry):
|
||||
for key, value in entry.to_dict().items():
|
||||
expected_string = f"test {value} formatting works"
|
||||
format_string = f"test {{{key}}} formatting works"
|
||||
|
||||
assert entry.apply_formatter(format_string) == expected_string
|
||||
|
||||
return True
|
||||
|
||||
return _validate_entry_dict_contains_valid_formatters
|
||||
|
|
|
|||
|
|
@ -6,29 +6,18 @@ class TestEntry(object):
|
|||
def test_entry_properties(
|
||||
self,
|
||||
mock_entry,
|
||||
uid,
|
||||
title,
|
||||
upload_date,
|
||||
upload_year,
|
||||
ext,
|
||||
thumbnail,
|
||||
thumbnail_ext,
|
||||
download_file_name,
|
||||
validate_entry_properties,
|
||||
):
|
||||
assert mock_entry.uid == uid
|
||||
assert mock_entry.title == title
|
||||
# Title does not require sanitizing, so should be the same
|
||||
assert mock_entry.sanitized_title == title
|
||||
assert mock_entry.upload_date == upload_date
|
||||
assert mock_entry.upload_year == upload_year
|
||||
assert mock_entry.ext == ext
|
||||
assert mock_entry.thumbnail == thumbnail
|
||||
assert mock_entry.thumbnail_ext == thumbnail_ext
|
||||
assert mock_entry.download_file_name == download_file_name
|
||||
assert validate_entry_properties(mock_entry)
|
||||
|
||||
def test_entry_to_dict(self, mock_entry, mock_entry_to_dict):
|
||||
assert mock_entry.to_dict() == mock_entry_to_dict
|
||||
|
||||
def test_entry_dict_contains_valid_formatters(
|
||||
self, mock_entry, validate_entry_dict_contains_valid_formatters
|
||||
):
|
||||
assert validate_entry_dict_contains_valid_formatters(mock_entry)
|
||||
|
||||
def test_entry_file_path(self, mock_entry, download_file_name):
|
||||
relative_directory = tempfile.TemporaryDirectory()
|
||||
|
||||
|
|
|
|||
95
tests/unit/entries/test_soundcloud_entries.py
Normal file
95
tests/unit/entries/test_soundcloud_entries.py
Normal file
|
|
@ -0,0 +1,95 @@
|
|||
import pytest
|
||||
|
||||
from ytdl_subscribe.entries.soundcloud import SoundcloudTrack
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def track_number():
|
||||
return 1
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def track_number_padded():
|
||||
return "01"
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def url():
|
||||
return "soundcloud.com/artist/track-asdfasdf"
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def is_premiere():
|
||||
return False
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_soundcloud_track_to_dict(
|
||||
mock_entry_to_dict,
|
||||
title,
|
||||
upload_year,
|
||||
track_number,
|
||||
track_number_padded,
|
||||
is_premiere,
|
||||
):
|
||||
return dict(
|
||||
mock_entry_to_dict,
|
||||
**{
|
||||
"track_number": track_number,
|
||||
"track_number_padded": track_number_padded,
|
||||
"album": title,
|
||||
"sanitized_album": title,
|
||||
"album_year": upload_year,
|
||||
"is_premiere": is_premiere,
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_soundcloud_track_kwargs(mock_entry_kwargs, url):
|
||||
return dict(mock_entry_kwargs, **{"url": url})
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def mock_soundcloud_track(mock_soundcloud_track_kwargs):
|
||||
return SoundcloudTrack(**mock_soundcloud_track_kwargs)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def validate_soundcloud_track_properties(
|
||||
validate_entry_properties,
|
||||
title,
|
||||
upload_year,
|
||||
track_number,
|
||||
track_number_padded,
|
||||
is_premiere,
|
||||
):
|
||||
def _validate_soundcloud_track_properties(soundcloud_track: SoundcloudTrack):
|
||||
assert validate_entry_properties(soundcloud_track)
|
||||
assert soundcloud_track.track_number == track_number
|
||||
assert soundcloud_track.track_number_padded == track_number_padded
|
||||
assert soundcloud_track.album == title
|
||||
assert soundcloud_track.sanitized_album == title
|
||||
assert soundcloud_track.album_year == upload_year
|
||||
assert soundcloud_track.is_premiere == is_premiere
|
||||
|
||||
return True
|
||||
|
||||
return _validate_soundcloud_track_properties
|
||||
|
||||
|
||||
class TestSoundcloudTrack(object):
|
||||
def test_properties(
|
||||
self,
|
||||
mock_soundcloud_track,
|
||||
validate_soundcloud_track_properties,
|
||||
):
|
||||
assert validate_soundcloud_track_properties(mock_soundcloud_track)
|
||||
|
||||
def test_to_dict(self, mock_soundcloud_track, mock_soundcloud_track_to_dict):
|
||||
assert mock_soundcloud_track.to_dict() == mock_soundcloud_track_to_dict
|
||||
|
||||
def test_soundcloud_dict_contains_valid_formatters(
|
||||
self, mock_soundcloud_track, validate_entry_dict_contains_valid_formatters
|
||||
):
|
||||
assert validate_entry_dict_contains_valid_formatters(mock_soundcloud_track)
|
||||
Loading…
Reference in a new issue