Files
zyrarbot/tests/test_uploads_repository.py
T

37 lines
1.4 KiB
Python

import tempfile
import unittest
from pathlib import Path
from zyrarbot.storage.uploads_repository import UploadsRepository
from zyrarbot.ui.bot.cogs.playback_cog import upload_choices
class UploadsRepositoryTest(unittest.TestCase):
def test_upload_autocomplete_ignores_empty_names_and_limits_labels(self):
choices = upload_choices(["", " ", "song.mp3", "x" * 120])
self.assertEqual([choice.value for choice in choices], ["song.mp3", "x" * 120])
self.assertEqual(len(choices[1].name), 100)
def test_only_audio_and_video_extensions_are_supported(self):
self.assertTrue(UploadsRepository.is_supported_filename("song.MP3"))
self.assertTrue(UploadsRepository.is_supported_filename("video.webm"))
self.assertFalse(UploadsRepository.is_supported_filename("program.exe"))
self.assertFalse(UploadsRepository.is_supported_filename("document.pdf"))
def test_legacy_root_files_are_assigned_to_first_guild(self):
with tempfile.TemporaryDirectory() as directory:
root = Path(directory)
(root / "legacy.mp3").write_bytes(b"audio")
repository = UploadsRepository(str(root))
repository.migrate_legacy(10)
self.assertEqual([item.filename for item in repository.list(10)], ["legacy.mp3"])
self.assertFalse((root / "legacy.mp3").exists())
self.assertEqual(repository.list(20), [])
if __name__ == "__main__":
unittest.main()