Files
zyrarbot/tests/test_uploads_repository.py
T
mmacierzanka 56e3ddba8a
Panel / Lint, typy i build (pull_request) Successful in 25s
Backend / Testy i kontrakt API (pull_request) Successful in 31s
Backend / Lint i formatowanie (pull_request) Failing after 32s
Backend / Testowy build obrazu (pull_request) Skipped
fix: tests and linters
2026-10-01 13:59:19 +02:00

37 lines
1.5 KiB
Python

import tempfile
import unittest
from pathlib import Path
from zyrarbot.storage.adapters.filesystem.uploads 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()