music on atproto
plyr.fm
1"""test upload size limits for audio and image files."""
2
3import pytest
4from sqlalchemy.ext.asyncio import AsyncSession
5
6from backend.config import settings
7from backend.models import Artist, Track
8
9
10@pytest.fixture
11async def test_artist(db_session: AsyncSession) -> Artist:
12 """create test artist for upload tests."""
13 artist = Artist(
14 did="did:plc:testartist",
15 handle="testartist.bsky.social",
16 display_name="Test Artist",
17 )
18 db_session.add(artist)
19 await db_session.commit()
20 return artist
21
22
23@pytest.fixture
24async def test_track(db_session: AsyncSession, test_artist: Artist) -> Track:
25 """create test track for update tests."""
26 track = Track(
27 title="test track",
28 file_id="testfile123456",
29 file_type="mp3",
30 artist_did=test_artist.did,
31 )
32 db_session.add(track)
33 await db_session.commit()
34 return track
35
36
37def test_configurable_upload_limit():
38 """test that upload size limit is configurable via settings."""
39 # verify default is 1536MB (1.5GB)
40 assert settings.storage.max_upload_size_mb == 1536
41
42 # verify it can be changed (this would normally be via env var)
43 settings.storage.max_upload_size_mb = 2048
44 assert settings.storage.max_upload_size_mb == 2048
45
46 # restore default
47 settings.storage.max_upload_size_mb = 1536